BestCoder Round #64 (div.2)

1001判断大数是2,3,5的整数倍(水题)

 1 /*
 2 */
 3 #include<stdio.h>
 4 #include<math.h>
 5 #include<string.h>
 6 #include<stdlib.h>
 7 #include<ctype.h>
 8 #include <map>
 9 #include <set>
10 #include <cmath>
11 #include <deque>
12 #include <queue>
13 #include <stack>
14 #include <cstdio>
15 #include <cctype>
16 #include <string>
17 #include <vector>
18 #include <cstdlib>
19 #include <cstring>
20 #include <iostream>
21 #include <algorithm>
22 #define LL long long
23 #define INF 0x7fffffff
24 using namespace std;
25 #define N 405
26  
27 int main()
28 {
29     int n=35;
30     char a[n];
31     while(scanf("%s",a)!=EOF)
32     {
33         int flag=0;
34         int t=strlen(a);
35         //cout<<t<<endl;
36         switch(a[t-1]){
37             //cout<<a[t-1]<<endl;
38             case '0':
39             case '2':
40             case '4':
41             case '5':
42             case '6':
43             case '8':
44                 {
45                     flag=1;
46                     break;
47                 }
48             default:break;
49         }
50         //cout<<flag<<endl;
51         if(flag==0){
52             int res=0;
53             for(int i=0;i<t;i++)
54             {
55                 res+=a[i]-'0';
56             }
57             if(res%3==0){
58                 flag=1;
59             }
60         }
61         if(flag==0){
62             cout<<"NO"<<endl;
63         }
64         else 
65         cout<<"YES"<<endl;
66     }
67     return 0;
68 }
View Code

1002求最大连续子序列

表示依然没有形成DP的思想,这么简单的还是想错了。

当前面对当前位置的累积和pos>0时,对于后面的数都是有增加的意义的;

若pos<0则 从0开始计数,pos再进行累加。

每次pos操作之后,都要对最大值max进行比较更新。

 1 /*
 2 */
 3 #include<stdio.h>
 4 #include<math.h>
 5 #include<string.h>
 6 #include<stdlib.h>
 7 #include<ctype.h>
 8 #include <map>
 9 #include <set>
10 #include <cmath>
11 #include <deque>
12 #include <queue>
13 #include <stack>
14 #include <cstdio>
15 #include <cctype>
16 #include <string>
17 #include <vector>
18 #include <cstdlib>
19 #include <cstring>
20 #include <iostream>
21 #include <algorithm>
22 #define LL long long
23 #define INF 0x7fffffff
24 using namespace std;
25 #define N 405
26  
27 int main()
28 {
29     int n;
30     int a[100005],b[100005];
31     while(cin>>n)
32     {
33         long long res=0;
34         for(int i=0;i<n;i++){
35             scanf("%d",&a[i]);
36             res+=a[i];
37             b[i]=(1890*a[i]+143)%10007;
38 //            cout<<b[i]<<"qqqqqqqq";
39             b[i]=b[i]-a[i];
40         }
41         
42 //        for(int i=0;i<n;i++){
43 //            cout<<a[i]<<" "<<b[i]<<endl;
44 //        }
45         int j=0;
46         long long dis=0,pos=0;
47         while(j<n)
48         {
49 //            cout<<pos<<endl;
50 //        
51             pos+=b[j];
52             dis=max(dis,pos);
53             if(pos<0)
54             {
55                 pos=0;
56             }
57             j++;
58         }
59 //        cout<<res<<"sss"<<dis<<endl;
60         res+=dis;
61         cout<<res<<endl;
62     }
63     return 0;
64 }
View Code

1003

 待补

你可能感兴趣的:(BestCoder Round #64 (div.2))