前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2017.10.25水题大作战题解

2017.10.25水题大作战题解

作者头像
attack
发布2018-04-11 16:40:43
6540
发布2018-04-11 16:40:43
举报

rank:

T1P1615 西游记公司

https://www.luogu.org/problemnew/show/P1615

scanf直接秒

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #define LL long long 
 6 using namespace std;
 7 inline LL read()
 8 {
 9     char c=getchar();LL x=0,f=1;
10     while(c<'0'||c>'9')    {if(c=='-')    f=-1;c=getchar();}
11     while(c>='0'&&c<='9')    x=x*10+c-48,c=getchar();return x*f;
12 }
13 int main()
14 {
15     LL a,b,c,d,e,f,n;
16     scanf("%lld:%lld:%lld%lld:%lld:%lld%lld",&a,&b,&c,&d,&e,&f,&n);
17     printf("%lld",n*(f-c+60*(e-b)+3600*(d-a)));
18     return 0;
19 }

T2P1838 三子棋I

https://www.luogu.org/problemnew/show/P1838

判断好每一种情况,不要忘了平局

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #define LL  long long 
 6 using namespace std;
 7 const int MAXN=201;
 8 inline int read()
 9 {
10     char c=getchar();int flag=1,x=0;
11     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
12     while(c>='0'&&c<='9')    x=(x*10+c-48),c=getchar();    return x*flag;
13 }
14 int a[MAXN][MAXN];
15 char s[MAXN];
16 int hang[MAXN];
17 int lie[MAXN];
18 int hang2[MAXN];
19 int lie2[MAXN];
20 int main()
21 {
22     int n=3;
23     scanf("%s",s+1);
24     int now=1;
25     for(int i=1;i<=strlen(s+1);i++)
26     {
27         int p=(int)s[i]-48;
28         if(p%3!=0)
29         {
30             a[p/3+1][p%3]=now;
31             if(now==1)    hang[p/3+1]++,    lie[p%3]++;
32             else    hang2[p/+1]++,    lie2[p%3]++;
33         }
34         else
35         {
36             a[p/3][3]=now;
37             if(now==1)    hang[p/3]++,    lie[3]++;
38             else        hang2[p/3]++,    lie2[3]++;
39         }
40         if(now==1)    now=0;else now=1;
41     }
42     for(int i=1;i<=3;i++)
43         if(hang[i]==3||lie[i]==3)
44         {        printf("xiaoa wins.");    return 0;    }
45     if((a[1][1]==1&&a[2][2]==1&&a[3][3]==1)||(a[1][3]==1&&a[2][2]==1&&a[3][1]==1))
46     {    printf("xiaoa wins.");    return 0;    }
47     for(int i=1;i<=3;i++)
48         if(hang2[i]==3||lie2[i]==3)
49         {    printf("uim wins.");    return 0;    }
50     if((a[1][1]==0&&a[2][2]==0&&a[3][3]==0)||(a[1][3]==0&&a[2][2]==0&&a[3][1]==0))
51     {        printf("uim wins.");        return 0;    }
52     printf("drew.");
53     return 0;
54 }

T3P1319 压缩技术

https://www.luogu.org/problemnew/show/P1319

根据题意模拟即可

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #define LL  long long 
 6 using namespace std;
 7 const int MAXN=201;
 8 inline int read()
 9 {
10     char c=getchar();int flag=1,x=0;
11     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
12     while(c>='0'&&c<='9')    x=(x*10+c-48),c=getchar();    return x*flag;
13 }
14 int n;
15 int main()
16 {
17     n=read();
18     int now=0;
19     int how=1;//zero 
20     int p;
21     while(cin>>p)
22     {
23         for(int i=1;i<=p;i++)
24         {
25             if(how==1)    printf("0");
26             else         printf("1");
27             now++;
28             if(now==n)    printf("\n"),now=0;
29         }
30         if(how==1)    how=0;
31         else how=1;
32     }
33     return 0;
34 }

T4P2077 红绿灯

https://www.luogu.org/problemnew/show/P2077

模拟汽车的行走路线,注意在经过红绿灯的时候取模

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #define LL  long long 
 6 using namespace std;
 7 const int MAXN=200001;
 8 inline int read()
 9 {
10     char c=getchar();int flag=1,x=0;
11     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
12     while(c>='0'&&c<='9')    x=(x*10+c-48),c=getchar();    return x*flag;
13 }
14 int n,m;
15 int dis[MAXN];
16 int green[MAXN];
17 int red[MAXN];
18 int get(int pos,int val)
19 {
20     int now=val%(green[pos]+red[pos]);
21     if(now<=green[pos])    return 0;
22     return red[pos]-(now-green[pos]);
23 }
24 int main()
25 {
26     n=read(),m=read();
27     for(int i=1;i<=n-1;i++)    dis[i]=read();
28     for(int i=1;i<=n;i++)    red[i]=read();
29     for(int i=1;i<=n;i++)    green[i]=read();
30     int now=m;
31     for(int i=1;i<=n;i++)
32     {
33         now=now+get(i,now);
34         printf("%d\n",now);
35         now+=dis[i];
36     }
37     return 0;
38 }

T5P2043 质因子分解

https://www.luogu.org/problemnew/show/P2043

枚举1-n,依次进行分解

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<cmath>
 5 #define LL  long long 
 6 using namespace std;
 7 const LL MAXN=200001;
 8 inline LL read()
 9 {
10     char c=getchar();LL flag=1,x=0;
11     while(c<'0'||c>'9')    {if(c=='-')    flag=-1;c=getchar();}
12     while(c>='0'&&c<='9')    x=(x*10+c-48),c=getchar();    return x*flag;
13 }
14 LL n;
15 LL vis[MAXN];
16 LL prime[MAXN];
17 LL tot=0;
18 LL ans[MAXN];
19 int main()
20 {
21     n=read();
22     vis[1]=1;
23     for(LL i=1;i<=10000;i++)
24     {
25         if(vis[i]==0)
26         {
27             prime[++tot]=i;
28             for(LL j=i;j<=15000;j+=i)
29                 vis[j]=1;
30         }    
31     }
32 //    for(LL i=1;i<=tot;i++)
33     //    cout<<prime[i]<<" ";
34     for(LL i=1;i<=n;i++)
35     {
36         LL p=i;
37         for(LL j=1;j<=tot;j++)
38             while(p%prime[j]==0&&p!=1)
39                 ans[j]++,p=p/prime[j];
40     }
41     for(LL i=1;i<=tot;i++)
42         if(ans[i]!=0)
43             printf("%lld %lld\n",prime[i],ans[i]);
44     return 0;
45 }

T6P1737 旷野大计算

https://www.luogu.org/problemnew/show/P1737

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • T1P1615 西游记公司
  • T2P1838 三子棋I
  • T3P1319 压缩技术
  • T4P2077 红绿灯
  • T5P2043 质因子分解
  • T6P1737 旷野大计算
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档