AtCoder Beginner Contest 060

A题

分析:单词接龙,傻逼题

 1 #include "iostream"
 2 #include "cstdio"
 3 #include "cstring"
 4 #include "string"
 5 using namespace std;
 6 string a,b,c;
 7 int main()
 8 {
 9     cin>>a>>b>>c;
10     int lena=a.length();
11     int lenb=b.length();
12     if(b[0]==a[lena-1]&&(c[0]==b[lenb-1]))
13         cout<<"YES"<<endl;
14     else
15         cout<<"NO"<<endl;
16 }
View Code

B题

分析:其实就是判断a的各个倍数是否满足,如果找到有循环不满足的,直接为NO,有满足为YES

 1 #include "iostream"
 2 #include "cstdio"
 3 #include "map"
 4 using namespace std;
 5 int a,b,c;
 6 int main()
 7 {
 8     cin>>a>>b>>c;
 9     int flag=0;
10     map<int,int>mp;
11     for(int i=1;;i++)
12     {
13         int t=a*i;
14         int mod=t%b;
15         if(mod==(c%b)){
16             break;
17         }
18         if(mp[mod]){
19             flag=1; break;
20         }
21         mp[mod]=1;
22     }
23     if(!flag)
24         cout<<"YES"<<endl;
25     else
26         cout<<"NO"<<endl;
27 }
View Code

 C题

分析:找到t[i+1]>t[i]+T的地方进行计算即可

 1 #include "iostream"
 2 #include "cstdio"
 3 #include "cstring"
 4 #include "string"
 5 #include "climits"
 6 using namespace std;
 7 const int maxn=200000+10;
 8 long long t[maxn];
 9 int n;
10 long long T;
11 int main()
12 {
13     cin>>n>>T;
14     for(int i=0;i<=n;i++)
15         t[i]=LONG_MAX;
16     for(int i=0;i<n;i++)
17         scanf("%lld",&t[i]);
18     int i=0;
19     long long ans=0;
20     while(i<n){
21         int pre=i;
22         while(t[i+1]<t[i]+T) i++;
23         ans+=t[i]+T-t[pre];
24         i++;
25     }
26     cout<<ans<<endl;
27 }
View Code

 

posted @ 2017-04-29 23:55  wolf940509  阅读(155)  评论(0编辑  收藏  举报