2015苏州大学ACM-ICPC集训队选拔赛(3)题解

1001

1002

1003

1004

这是一道二进制题,题目上已经有提示了。n个树坑可以看成是n位二进制数,没有种树的位置上值为0,种树的位置上值为1。这样只需要枚举所有的n位二进制数,求出每一位上的值,再判断是否至少有1以及任意两个1之间是否距离至少为m。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstring>
 5
 6 using namespace std;
 7 int a[100];
 8
 9 int main()
10 {
11     int n,m,k;
12     while(~scanf("%d%d%d",&n,&k,&m))
13     {
14         int ans=0;
15         for(int i=0;i<(1<<n);++i)
16         {
17             int cnt=0;
18             memset(a,0,sizeof(a));
19             int num=i;
20             while(num!=0)
21             {
22                 a[cnt++]=num%2;
23                 num=num/2;
24             }
25             int count=0;
26             num=1;
27             bool f=true;
28             for(int j=0;j<cnt;++j)
29             {
30                 if(a[j]==1)
31                 {
32                     if(num<m&&j!=0)
33                         f=false;
34                     count++;
35                     num=1;
36                 }
37                 else
38                     num++;
39             }
40             if(f&&count>=k)
41                 ans++;
42         }
43         printf("%d\n",ans);
44     }
45      return 0;
46 }

1005

签到题。将所有给出的数转化成10进制数,注意a~f的情况。用一个长度为1000的数组保存每个数出现的次数,最后遍历一遍数组找到出现次数最多的数即可。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstring>
 5
 6 using namespace std;
 7 int num[1200];
 8 char a[10]={‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘};
 9 int main()
10 {
11     int t,n;
12     char s[20];
13     while(~scanf("%d",&t))
14     {
15         memset(num,0,sizeof(num));
16         while(t--)
17         {
18             scanf("%d %s",&n,s);
19             int c=0;
20             for(int i=0;i<strlen(s);++i)
21             {
22                 if(s[i]>=‘0‘&&s[i]<=‘9‘)
23                 {
24                     c=c*n;
25                     c+=s[i]-‘0‘;
26                 }
27                 else
28                 {
29                     c=c*n;
30                     c+=s[i]-‘a‘+10;
31                 }
32             }
33             num[c]++;
34         }
35         int max=0;
36         int ans=0;
37         for(int i=0;i<=1000;++i)
38         {
39             if(num[i]>max)
40             {
41                 max=num[i];
42                 ans=i;
43             }
44         }
45         printf("%d\n",ans);
46     }
47      return 0;
48 }

1006

很经典的一道题,也算是签到题。解决这道题的方法很多,这里就只给出最优的方案。我们需要保存一个当前最大的子序列和maxsun以及从1开始的子序列的和thissum。当thissum>maxsum时,maxsum赋值为thissum,当thissum<0时,thissum赋值为0。这样遍历一遍数组,thissum每次加上遍历到的数,并进行更新,最后maxsum保存的便是最大的子序列和。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstring>
 5 using namespace std;
 6
 7 int main()
 8 {
 9     long long  ThisSum,MaxSum,i,a,n;
10        while(~scanf("%d",&n))
11     {
12
13            ThisSum = MaxSum = 0 ;
14            for( i=0 ; i<n ; i++ )
15            {
16                scanf("%I64d",&a);
17              ThisSum += a;
18
19                if( ThisSum > MaxSum )
20                 MaxSum = ThisSum ;
21                else
22                 if( ThisSum < 0)
23                        ThisSum = 0 ;
24           }
25         printf("%I64d\n",MaxSum);
26     }
27      return 0;
28 }

1007

1008

1009

1010

时间: 2024-08-11 07:47:14

2015苏州大学ACM-ICPC集训队选拔赛(3)题解的相关文章

【题解】 2015 ACM/ICPC Asia Regional Shenyang Online

[1006] FangFang (暴力枚举) Fang Fang Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 871    Accepted Submission(s): 364 Problem Description Fang Fang says she wants to be remembered. I promise her.

HDU 5014 Number Sequence(2014 ACM/ICPC Asia Regional Xi&#39;an Online) 题解

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5014 Number Sequence Problem Description There is a special number sequence which has n+1 integers. For each number in sequence, we have two rules: ● ai ∈ [0,n] ● ai ≠ aj( i ≠ j ) For sequence a and sequ

(并查集)Travel -- hdu -- 5441(2015 ACM/ICPC Asia Regional Changchun Online )

http://acm.hdu.edu.cn/showproblem.php?pid=5441 Travel Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 2061    Accepted Submission(s): 711 Problem Description Jack likes to travel around the wo

2015 ACM/ICPC Asia Regional Changchun Online HDU 5444 Elven Postman【二叉排序树的建树和遍历查找】

Elven Postman Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 591    Accepted Submission(s): 329 Problem Description Elves are very peculiar creatures. As we all know, they can live for a very

2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)

摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5984 Pocky 题意 给出一根棒子(可以吃的)的长度x和切割过程中不能小于的长度d,每次随机的选取一个位置切开,吃掉左边的一半,对右边的棒子同样操作,直至剩余的长度不大于d时停止.现在给出x和d,问切割次数的数学期望是多少. 解题思路 当看到第二个样例2 1时,结果是1.693147,联想到ln

《ACM/ICPC 算法训练教程》读书笔记一之数据结构(堆)

书籍简评:<ACM/ICPC 算法训练教程>这本书是余立功主编的,代码来自南京理工大学ACM集训队代码库,所以小编看过之后发现确实很实用,适合集训的时候刷题啊~~,当时是听了集训队final的意见买的,感觉还是不错滴. 相对于其他ACM书籍来说,当然如书名所言,这是一本算法训练书,有着大量的算法实战题目和代码,尽管小编还是发现了些许错误= =,有部分注释的语序习惯也有点不太合我的胃口.实战题目较多是比较水的题,但也正因此才能帮助不少新手入门,个人认为还是一本不错的算法书,当然自学还是需要下不少

ACM ICPC 2008–2009 NEERC MSC A, B, C, G, L

这套题是我上周日, 就是前天打得一场组队赛, 题目不太好找 题目链接:http://codeforces.com/gym/100861 在virtual judge 上也可以提交哦! A ACM ICPC Rules: 题目大意: 有很多所高校参加预选赛, 并在预选赛取得了排名, 但是对于每所学校, 除了MSU有4个名额之外其他大学只有两个名额( 也就是说, 只有每个大学的前2名进决赛(MSU前四名)&& 最多有10个队伍进入决赛), 高中队伍不能进入决赛. 给出预选赛的排名, 输出可以进

2016 ACM/ICPC Asia Regional Shenyang Online 1007/HDU 5898 数位dp

odd-even number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 388    Accepted Submission(s): 212 Problem Description For a number,if the length of continuous odd digits is even and the length

hdu 5008(2014 ACM/ICPC Asia Regional Xi&#39;an Online ) Boring String Problem(后缀数组&amp;二分)

Boring String Problem Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 219    Accepted Submission(s): 45 Problem Description In this problem, you are given a string s and q queries. For each que

2016年acm icpc 青岛站(中国石油大学(华东))总结

2016年acm icpc 青岛站(中国石油大学(华东))总结 2016年11月11日,在这个传说中所谓的单身节,我们出发了,做了整整一天的车来到了青岛.不得不提一下,作为一个身处华中沿海地区的童鞋,这是我人生第一次坐了这么久的高铁(真的无聊,无聊,无聊),然后到了青岛是晚上了(挤公交车真的是一件很刺激的事情). 海风那个吹, 海水那个涌, 冻得萌新瑟瑟发抖. 也许是知道我们要来挖石油的缘故吧, 老天爷特意给了我们三天晴天. 晚上也没啥事,就这么洗洗睡了,不对还有传说中学长带领学弟剁手呢! 第二