博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017百度之星初赛
阅读量:5134 次
发布时间:2019-06-13

本文共 7248 字,大约阅读时间需要 24 分钟。

1001 小C的倍数问题

Accepts: 1990
Submissions: 4931
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 32768/32768 K (Java/Others)
Problem Description

根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数。反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数。

现在给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数的充分必要条件是每一位加起来的和是B的倍数。

Input

第一行一个正整数T表示数据组数(1<=T<=20)。

接下来T行,每行一个正整数P(2 < P < 1e9),表示一组询问。

Output

对于每组数据输出一行,每一行一个数表示答案。

Sample Input
110
Sample Output
3 P-1的因子个数
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std; #define lowbit(x) (x&(-x)) #define max(x,y) (x>y?x:y) #define min(x,y) (x

 

1002 数据分割

Accepts: 102
Submissions: 1332
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 32768/32768 K (Java/Others)
Problem Description

小w来到百度之星的赛场上,准备开始实现一个程序自动分析系统。

这个程序接受一些形如xi=xjx_i = x_jxi​​=xj​​ 或 xi≠xjx_i \neq x_jxi​​xj​​ 的相等/不等约束条件作为输入,判定是否可以通过给每个 w 赋适当的值,来满足这些条件。

输入包含多组数据。 然而粗心的小w不幸地把每组数据之间的分隔符删掉了。 他只知道每组数据都是不可满足的,且若把每组数据的最后一个约束条件去掉,则该组数据是可满足的。

请帮助他恢复这些分隔符。

Input

111行:一个数字LLL,表示后面输入的总行数。

之后LLL行,每行包含三个整数,i,j,ei,j,ei,j,e,描述一个相等/不等的约束条件,若e=1e=1e=1,则该约束条件为xi=xjx_i = x_jxi​​=xj​​ ,若e=0e=0e=0,则该约束条件为 xi≠xjx_i \neq x_jxi​​xj​​ 。

i,j,L≤100000 i,j,L \leq 100000i,j,L100000

xi,xj≤Lx_i , x_j \leq L xi​​,xj​​L

Output

输出共T+1T+1T+1行。

第一行一个整数TTT,表示数据组数。

接下来TTT行的第iii行,一个整数,表示第i组数据中的约束条件个数。

Sample Input
62 2 12 2 11 1 13 1 11 3 11 3 0
Sample Output
16 并查集,按条件加入集合中。满足条件时,加入集合,不满足时说明是该组最后一组数据,清空即可。
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std; #define lowbit(x) (x&(-x)) #define max(x,y) (x>y?x:y) #define min(x,y) (x
s[100005],v;set
::iterator it;int ans,f[100005],pos[100005];int L,x,y,fx,fy,cnt,w;int find(int x){ return f[x]==x?x:find(f[x]);}void uion(int x,int y){ if(x==y) return ; if(s[x].size()>s[y].size()) swap(x,y); for(it=s[x].begin();it!=s[x].end();it++)//因为有这种情况:x和y相等,x和z不相等,那么y和z肯定也不相等 //也就是说只要z和x不相等,那么和x在同一个并查集合里的所有数都和z不相等 { s[*it].erase(x); s[*it].insert(y); s[y].insert(*it); } f[x]=y;}int main(){ for(int i=0;i<=100005;i++) f[i]=i; scanf("%d",&L); cnt=0;ans=0;//Recoding the number of date per case//Recoding the numper of case; while(L--) { cnt++; scanf("%d%d%d",&x,&y,&w); v.insert(x);v.insert(y); fx=find(x);fy=find(y); if(w==1) { if(fx==fy || s[fx].count(fy)==0) uion(fx,fy);//can satisfy else { //not satisfy,delete; pos[++ans]=cnt; cnt=0;//Recoding the number of date per case; for(it=v.begin();it!=v.end();it++)//for the new Case,so clear completely { s[*it].clear(); f[*it]=*it; } v.clear(); } } else { if(fx==fy)//not satisfy,delete { pos[++ans]=cnt; cnt=0; for(it=v.begin();it!=v.end();it++)//for the new Case,so clear completely { s[*it].clear(); f[*it]=*it; } v.clear(); } else s[fx].insert(f[y]),s[fy].insert(fx);//can satisfy } } printf("%d\n",ans); for(int i=1;i<=ans;i++) printf("%d\n",pos[i]); return 0;}

 

1005 今夕何夕

Accepts: 1345
Submissions: 5533
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 32768/32768 K (Java/Others)
Problem Description

今天是2017年8月6日,农历闰六月十五。

小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。

为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如今天是8月6日,星期日。下一个也是星期日的8月6日发生在2023年。

小贴士:在公历中,能被4整除但不能被100整除,或能被400整除的年份即为闰年。

Input

第一行为T,表示输入数据组数。

每组数据包含一个日期,格式为YYYY-MM-DD。

1 ≤ T ≤ 10000

YYYY ≥ 2017

日期一定是个合法的日期

Output

对每组数据输出答案年份,题目保证答案不会超过四位数。

Sample Input
32017-08-062017-08-072018-01-01
Sample Output
202320232024 分情况讨论月份小于2、月份大于2、月份等于2,天数等于29.
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std; #define lowbit(x) (x&(-x)) #define max(x,y) (x>y?x:y) #define min(x,y) (x

 

1006 度度熊的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字符只能是由一个连通块组成,存在且仅存在一个由0字符组成的连通块完全被1所包围。

图像1的定义:存在1字符且1字符只能是由一个连通块组成,不存在任何0字符组成的连通块被1所完全包围。

连通的含义是,只要连续两个方块有公共边,就看做是连通。

完全包围的意思是,该连通块不与边界相接触。

Input

本题包含若干组测试数据。 每组测试数据包含: 第一行两个整数n,m表示图像的长与宽。 接下来n行m列将会是只有01组成的字符画。

满足1<=n,m<=100

Output

如果这个图是1的话,输出1;如果是0的话,输出0,都不是输出-1。

Sample Input
32 32000000000000000000000000000000000000000000011111111000000000000000000000001111111111100000000000000000000011111111111100000000000000000001111111111111100000000000000000011111100011111000000000000000001111100000011110000000000000000011111000000111110000000000000000111110000000111110000000000000011111100000001111100000000000000111111000000001111100000000000001111110000000001111000000000000011111100000000011111000000000000111110000000000111100000000000001111000000000001111000000000000011110000000000011110000000000000111100000000000011100000000000000111100000000000111000000000000001111000000000001110000000000000011110000000000011100000000000001111000000000011110000000000000011110000000000111100000000000000011100000000001111000000000000000111110000011111110000000000000001111100011111111000000000000000011111111111111100000000000000000011111111111111000000000000000001111111111111000000000000000000001111111111100000000000000000000001111111000000000000000000000000011111000000000000000000000000000000000000000000000000032 3200000000000000000000000000000000000000000000000011111100000000000000000000000000111111100000000000000000000000011111111000000000000000000000001111111110000000000000000000000001111111100000000000000000000000011111111000000000000000000000001111111100000000000000000000000011111110000000000000000000000001111111100000000000000000000000011111111100000000000000000000000111111111000000000000000000000001111111100000000000000000000000111111100000000000000000000001111111111000000000000000000001111111111111000000000000000000111111111111110000000000000000001111111111111100000000000000000011111111111110000000000000000000000011111111110000000000000000000000000011111100000000000000000000000001111111000000000000000000000001111111100000000000000000000000001111111100000000000000000000000011111111000000000000000000000000111111111000000000000000000000001111111110000000000000000000000000111111110000000000000000000000000011111111110000000000000000000000111111111100000000000000000000000111111111000000000000000000000000000000000000003 3101101011
Sample Output
01-1
BFS求连通块个数,注意0 1的定义
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std; #define lowbit(x) (x&(-x)) #define max(x,y) (x>y?x:y) #define min(x,y) (x
ans;int bfs(int x,int y,char c){ int xx,yy; pos.x=x;pos.y=y; vis[x][y]=1; ans.push(pos); int ok=1; while(!ans.empty()) { pos=ans.front(); ans.pop(); for(int i=0;i<4;i++) { xx=dir[i][0]+pos.x; yy=dir[i][1]+pos.y; if((xx>=0 && xx
=0 && yy

 

 

转载于:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/7350851.html

你可能感兴趣的文章
032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
查看>>
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Python IO模型
查看>>
DataGridView的行的字体颜色变化
查看>>
局域网内手机访问电脑网站注意几点
查看>>