第十二届西科大程序设计竞赛心得(菜菜的

Posted yy222

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十二届西科大程序设计竞赛心得(菜菜的相关的知识,希望对你有一定的参考价值。

首先,选了一道在题目列表里名字不太一样的题来做, G. ACMer的荣耀。

这道题有两点没注意到:其一是开始时想成了10以内的运算,没有分解整数。其二是没有注意分解整数里的while跳出条件i=0时也是要加上6的。导致交了5遍才对。。。

 

 1 #include <cstdio>
 2 typedef long long ll;
 3 int a[10]={6,2,5,5,4,5,6,3,7,6};
 4 
 5 int main(void){
 6     int q;
 7     ll ans;
 8     while (scanf("%d", &q)!=EOF){
 9         int l, r;
10         while (q--){
11             ans=0;
12             scanf("%d%d", &l, &r);
13             for (int i=l; i<=r; i++){
14                 int num;
15                 int ii=i;
16                 if (i==0){
17                     ans+=6;
18                 }
19                 while (ii){
20                     num = ii%10;
21                     //printf("+%d ", a[num]);
22                     ans+=a[num];
23                     ii/=10;
24                 }
25             }
26             printf("%lld\n", ans);
27         }
28     }
29     return 0;
30 }

 

紧接着做了A题

学了一点map,边学边写出来的,map和set容器都会将里面的数据按字典序排序。还学到了用String类型的时候要写一个#include<string>的头文件。

 1 #include <cstdio>
 2 #include <map>
 3 #include <string>
 4 #include <algorithm>
 5 #include <iostream>
 6 using namespace std;
 7 
 8 map<string, int> c;
 9 
10 int main(void){
11     int n;
12     while (scanf("%d", &n)!=EOF){
13         int score;
14         string s;
15         for (int i=0; i<n; i++){
16             cin>>s>>score;
17             if (c[s] < score){
18                 c[s]=score;
19             }
20         }
21         for (map<string,int>::iterator it = c.begin(); it!=c.end(); ++it){
22             cout<<it->first<<" "<<it->second<<endl;
23         }
24         c.clear();
25     }
26 
27     return 0;
28 }

 

写轰炸面积最多是多少那道题时,总感觉似曾相识,跟以前一道求坐标系上面积的题很像。那道题就是讲坐标系变成一个n*n的矩阵,然后标记上就行了。这道题我觉得很坑的是不能在n*n中遍历,因为你不知道输入的左下角,右上角坐标的最大值,n并不是界限,只是表示个数。所以我就用边界来遍历了,也就是101*101,i、j的范围都在【0,101)。

 1 #include <cstdio>
 2 #include <map>
 3 #include <string>
 4 #include <cstring>
 5 #include <algorithm>
 6 #include <iostream>
 7 using namespace std;
 8 
 9 struct node{
10     int x1;
11     int y1;
12     int x2;
13     int y2;
14 }node[105];
15 
16 int cnt[105][105];
17 
18 int main(void){
19     int n;
20     while (scanf("%d", &n)!=EOF){
21         for (int i=0; i<n; i++){
22             scanf("%d%d%d%d", &node[i].x1, &node[i].y1, &node[i].x2, &node[i].y2);
23         }
24         memset(cnt, 0, sizeof(cnt));
25         for (int i=0; i<n; i++){
26             int lx, rx, ly, ry;
27             lx=node[i].x1; rx=node[i].x2;
28             ly=node[i].y1; ry=node[i].y2;
29             for (int k=lx; k<rx; k++){
30                 for (int j=ly; j<ry; j++){
31                     cnt[k][j]++;
32                 }
33             }
34         }
35         /*
36         printf("cnt: \n");
37         for (int i=0; i<101;i++){
38             for (int j=0; j<101;j++){
39                printf("%d ", cnt[i][j]);
40             }
41             printf("\n");
42         }*/
43 
44         int m=0;
45         for (int i=0; i<101;i++){
46             for (int j=0;j<101; j++){
47                if (cnt[i][j]>m){
48                     m=cnt[i][j];
49                }
50             }
51         }
52         printf("%d\n", m);
53     }
54 
55     return 0;
56 }

 

看了题解之后 补了移动的反应堆那道签到题。。不知道对不对

 1 #include <cstdio>
 2 #include <map>
 3 #include <set>
 4 #include <string>
 5 #include <cstring>
 6 #include <algorithm>
 7 #include <iostream>
 8 using namespace std;
 9 int a[100005];
10 multiset<int> muls;
11 
12 int main(void){
13     int n;
14     int ans=0;
15     while (scanf("%d", &n)!=EOF){
16        for (int i=0; i<n; i++){
17             scanf("%d", &a[i]);
18        }
19        for (int i=0; i<n; i++){
20             muls.insert(a[i]);
21             //printf("cnt = %d\n", muls.count(a[i]));
22             if (muls.count(a[i])==3){
23                 ans++;
24                 muls.clear();
25             }
26        }
27        printf("%d\n", ans);
28     }
29 
30     return 0;
31 }

 

打了比赛之后,学到了很多。终于从0,1,2道题,变成了3道题了~而且还学到了不少~开心~

 

以上是关于第十二届西科大程序设计竞赛心得(菜菜的的主要内容,如果未能解决你的问题,请参考以下文章

题解:中南大学第十二届大学生程序设计竞赛

湖南省第十二届大学生计算机程序设计竞赛 G Parenthesis

“山大地纬杯”第十二届山东省ICPC大学生程序设计竞赛 AHK

湖南省第十二届大学生计算机程序设计竞赛 A 2016

湖南省第十二届大学生计算机程序设计竞赛---Parenthesis(线段树求区间最值)

湖南省第十二届大学生计算机程序设计竞赛 problem A 2016