百度之星2017初赛A

雪崩,没晋级,补题

1001

分析:求n-1的约数个数

 1 #include "iostream"
 2 #include "cstdio"
 3 #include "cstring"
 4 #include "string"
 5 #include "cmath"
 6 using namespace std;
 7 int T;
 8 long long n;
 9 long long rev(long long res){
10     long long t=sqrt(res);
11     long long cnt=0;
12     if(t*t==res){
13         cnt=1;
14     }
15     t--;
16     for(int i=1;i<=t;i++){
17         if(res%i==0)
18             cnt+=2;
19     }
20     return cnt;
21 }
22 int main()
23 {
24     cin>>T;
25     while(T--){
26         cin>>n;
27         cout<<rev(n-1)<<endl;
28     }
29     return 0;
30 }

1005

分析:对于小于2月29的,先判断再加1,其他的先加1在判断。注意如果是2月29号,必须是闰年才行,同时我们可以采用平年改天星期几向后移一天,闰年向后移两天的方法来统计。

 1 #include "iostream"
 2 #include "cstdio"
 3 #include "cstring"
 4 #include "string"
 5 using namespace std;
 6 int T;
 7 //string s;
 8 bool judge(int x){
 9     if(x%4==0&&(x%100!=0||x%400==0))
10         return true;
11     return false;
12 }
13 int check(string h){
14     string res="";
15     res+=h[5];
16     res+=h[6];
17     res+=h[8];
18     res+=h[9];
19     string t="0229";
20     if(res<t)
21         return 0;
22     else if(res==t)
23         return 1;
24     else
25         return 2;
26 }
27 int main()
28 {
29     cin>>T;
30     while(T--){
31         string s;
32         cin>>s;
33         int num=0;
34         for(int i=0;i<4;i++){
35             num*=10;
36             num+=(s[i]-‘0‘);
37         }
38         int t=0;
39         if(check(s)==0){
40             //int i=num,t=0;
41             while(1){
42                 if(judge(num)){
43                     t+=2;
44                 }else t++;
45                 num++;
46                 if(t%7==0)  break;
47                 //num++;
48             }
49         }else if(check(s)==2){
50             while(1){
51                 num++;
52                 if(judge(num)){
53                     t+=2;
54                 }else t++;
55                 if(t%7==0)  break;
56             }
57         }else{
58             while(1){
59                 num++;
60                 if(judge(num)){
61                     t+=2;
62                     if(t%7==0) break;
63                 }else t++;
64             }
65         }
66         cout<<num<<endl;
67     }
68     return 0;
69 }

1006

分析:这题学到了一种巧妙的处理方法,在矩形的周围染一圈0。这样的话,联通块0是否和边界有连接可以很方便判断出来了,接下来就是判断1和0的联通块的数量。

 1 #include "iostream"
 2 #include "cstdio"
 3 #include "cstring"
 4 #include "string"
 5 using namespace std;
 6 const int maxn=100+10;
 7 int n,m;
 8 int vis[maxn][maxn],f[maxn][maxn];
 9 int dx[]={-1,1,0,0};
10 int dy[]={0,0,-1,1};
11 void dfs(int x,int y){
12     vis[x][y]=1;
13     for(int i=0;i<4;i++){
14         int nx=x+dx[i],ny=y+dy[i];
15         if(nx>=0&&nx<=n+1&&ny>=0&&ny<=m+1&&!vis[nx][ny]&&f[nx][ny]==f[x][y])
16             dfs(nx,ny);
17     }
18 }
19 int main()
20 {
21     while(cin>>n>>m){
22         memset(vis,0,sizeof(vis));
23         memset(f,0,sizeof(f));
24         for(int i=1;i<=n;i++){
25             getchar();
26             for(int j=1;j<=m;j++){
27                 char ch;
28                 scanf("%c",&ch);
29                 if(ch==‘1‘)
30                     f[i][j]=1;
31             }
32         }
33         int zero=0,one=0;
34         for(int i=0;i<=n+1;i++){
35             for(int j=0;j<=m+1;j++){
36                 if(!vis[i][j]){
37                     if(f[i][j]==0) zero++;
38                     else one++;
39                     dfs(i,j);
40                 }
41             }
42         }
43         if(zero==2&&one==1)  printf("0");
44         else if(zero==1&&one==1)  printf("1");
45         else  printf("-1");
46         printf("\n");
47     }
48 }

时间: 2024-10-24 16:48:16

百度之星2017初赛A的相关文章

百度之星2017初赛A-1005-今夕何夕

今夕何夕 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 719    Accepted Submission(s): 228 Problem Description 今天是2017年8月6日,农历闰六月十五. 小度独自凭栏,望着一轮圆月,发出了"今夕何夕,见此良人"的寂寞感慨. 为了排遣郁结,它决定思考一个数学问题:接下来最近

【比赛】百度之星2017 初赛Round A

第一题 题意:给定多组数据P,每次询问P进制下,有多少数字B满足条件:只要数位之和是B的倍数,该数字就是B的倍数. 题解:此题是参考10进制下3和9倍数的特殊性质. 对于10进制,ab=10*a+b=9*a+(a+b),所以9的约数都有此性质. 对于P进制,ab=p*a+b=(p-1)a+(a+b),所以p-1的约数都有此性质. 对于P,计算P-1的约数个数即为答案. 第二题 第三题 第四题 第五题 题意:多组数据,给定年月日,求下一次同月同日为同星期几的年份. 题解:365%7=1,过一年星期

百度之星2017初赛A-1006-度度熊的01世界

度度熊的01世界 Accepts: 967 Submissions: 3064 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description 度度熊是一个喜欢计算机的孩子,在计算机的世界中,所有事物实际上都只由0和1组成. 现在给你一个n*m的图像,你需要分辨他究竟是0,还是1,或者两者均不是. 图像0的定义:存在1字符且1字符只能是由一个连通块组成,存在且

【百度之星2014~初赛(第二轮)解题报告】Chess

声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站,因此,笔者添加此条声明. 郑重声明:这篇记录<[百度之星2014~初赛(第二轮)解题报告]Chess>转载自 http://tiankonguse.com/ 的这条记录:http://tiankonguse.com/record/record.php?id=667 前言 最近要毕业了,有半年没做

百度之星2014初赛第二场

A. Scenic Popularity http://acm.hdu.edu.cn/showproblem.php?pid=4831 思路:景点区会控制休息区的Hot值,我们建立休息区到它最近的景点区的关系,注意处理冲突. 查询和修改都暴力进行,预处理关系,从左到右,然后从右到左遍历一遍即可,更新时候,从被修改的p位置,向两边,与p有关的休息区进行更新.总的时间复杂度O(T*n*K),10^8左右,不到1s可以解决. const int maxn = 10000; const int maxh

【百度之星2014~初赛(第二轮)解题报告】JZP Set

声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站,因此,笔者添加此条声明. 郑重声明:这篇记录<[百度之星2014~初赛(第二轮)解题报告]JZP Set>转载自 http://tiankonguse.com/ 的这条记录:http://tiankonguse.com/record/record.php?id=668 前言 最近要毕业了,有半年

【百度之星2014~初赛解题报告】

声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站,因此,笔者添加此条声明. 郑重声明:这篇记录<[百度之星2014~初赛解题报告]>转载自 http://tiankonguse.com/ 的这条记录:http://tiankonguse.com/record/record.php?id=671 前言 最近要毕业了,有半年没做比赛了.这次参加百度

百度之星2014初赛 - 1002 - Grids

先上题目: Grids Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submission(s): 0    Accepted Submission(s): 0 Problem Description 度度熊最近很喜欢玩游戏.这一天他在纸上画了一个2行N列的长方形格子.他想把1到2N这些数依次放进去,但是为了使格子看起来优美,他想找到使每行每列都递增的方案.不过画

百度之星2017 HDU 6109 数据分割 并查集+set

数据分割 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6109 Description 小w来到百度之星的赛场上,准备开始实现一个程序自动分析系统.这个程序接受一些形如xi=xj 或 xi≠xj 的相等/不等约束条件作为输入,判定是否可以通过给每个 w 赋适当的值,来满足这些条件.输入包含多组数据.然而粗心的小w不幸地把每组数据之间的分隔符删掉了.他只知道每组数据都是不可满足的,且若把每组数据的最后一个约束条件去掉,则该组数据是可满足的.请帮助他