2018 ACM-ICPC 中国大学生程序设计竞赛暨丝绸之路程序设计竞赛

三道大水题,其它题都不会做,真是尴尬和无奈啊…… 

有想法,但是解决不了,感觉个人不会一些基本解法,终究还是个人学习的内容太少了

E. Copy and Submit II

运行题目程序一遍就知道了

内存超限(没删原程序的a数组) -> 编译错误(只删了原程序的a数组,没删其它a变量) -> 运行超时(按照题目的代码用cin) -> 运行超时(scanf没用EOF) -> 正确通过

满满的泪水………………………………………………………………………………………………………………………………………………………………………

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <list>
#include <stack>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <algorithm>
#include <iostream>
using namespace std;
#define ll long long
const long maxn=1e6+5;
const ll mod=1e9+7;

int main()
{
    int n,i;
    long long r,a;
    while (scanf("%ld",&n)!=EOF)
    {
        r=1;
        for (i=0;i<n;i++)
        {
            scanf("%lld",&a);
            r=r*(a+1)%mod;
        }
        printf("%lld\n",r);
    }
    return 0;
}

I. Reversion Count

 1 //找个样例从头到尾调试一次,查看变量 
 2 #include <cstdio>
 3 #include <cstdlib>
 4 #include <cstring>
 5 #include <cmath>
 6 #include <list>
 7 #include <stack>
 8 #include <vector>
 9 #include <set>
10 #include <map>
11 #include <queue>
12 #include <algorithm>
13 #include <iostream>
14 using namespace std;
15 #define ll long long
16 const long maxn=1e6+5;
17 const ll mod=1e9+7;
18 
19 long a[105],b[105],n;
20 
21 bool pan()
22 {
23     long i;
24     //从高位到低位,这里写错了 
25     for (i=n;i>=1;i--)
26         if (a[i]>b[i])
27             return true;
28         else if (a[i]<b[i])
29             return false;
30     return false;
31 }
32 
33 int main()
34 {
35     long i,t,x;
36     char s[105];
37 //    while (scanf("%s",s)!=EOF)
38     while (cin>>s)
39     {
40         n=strlen(s);
41         for (i=1;i<=n;i++)
42             a[i]=s[n-i]-48;
43         for (i=1;i<=n;i++)
44             b[i]=a[n+1-i];
45         if (!pan())
46         {
47             for (i=1;i<=n;i++)
48             {
49                 t=a[i];
50                 a[i]=b[i];
51                 b[i]=t;
52             }
53         }
54         for (i=1;i<=n;i++)
55         {
56             a[i]-=b[i];
57             if (a[i]<0)
58             {
59                 a[i+1]--;
60                 a[i]+=10;
61             }
62         }
63         x=0;
64         for (i=n;i>=1;i--)
65         {
66             x=x*10+a[i];
67             a[i]=x/9;
68             x=x%9;
69         }
70         while (n>1 && a[n]==0)
71             n--;
72         //只使用一位数字,这里写错了 
73         for (i=n;i>1;i--)
74             if (a[i]!=a[i-1])
75                 break;
76         if (i==1)
77             printf("YES\n");
78         else
79             printf("NO\n");
80     }
81     return 0;
82 }

L. Nise-Anti-AK Problem

 1 #include <cstdio>
 2 #include <cstdlib>
 3 #include <cstring>
 4 #include <cmath>
 5 #include <list>
 6 #include <stack>
 7 #include <vector>
 8 #include <set>
 9 #include <map>
10 #include <queue>
11 #include <algorithm>
12 #include <iostream>
13 using namespace std;
14 #define ll long long
15 const long maxn=1e6+5;
16 const ll mod=1e9+7;
17 
18 long a[1005];
19 
20 int main()
21 {
22     long t,n,i;
23 //    for (i=1;i<=100;i++)
24 //    {
25 //        long sum=0;
26 //        for (int j=0;j<=i;j++)
27 //            sum+= (i | j);
28 //        printf("%ld\n",sum);
29 //    }
30     
31     scanf("%ld",&t);
32     while (t--)
33     {
34         scanf("%ld",&n);
35         for (i=1;i<=n;i++)
36             scanf("%ld",&a[i]);
37         sort(a+1,a+n+1);
38         printf("%ld\n",a[n]);
39     }
40     return 0;
41 }

猜你喜欢

转载自www.cnblogs.com/cmyg/p/8908424.html