2016杭州ccpc
Kingdom of Obsession
版权声明:本文为棒(xian)棒(yu)博主原创文章,转载请注明出处哦~
Kingdom of Obsession
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
They name themselves in integer, and there are n people with their id continuous (s+1,s+2,⋯,s+n) standing in a line in arbitrary order, be more obsessively, people with id x wants to stand at yth position which satisfy
Is there any way to satisfy everyone's requirement?
Every test case contains one line with two integers n, s.
Limits
1≤T≤100.
1≤n≤109.
0≤s≤109.
If there is any way to satisfy everyone's requirement, y equals 'Yes', otherwise y equals 'No'.
题意:我想来到这的都不用讲什么题意的吧。
思路:估计也都能想到利用二分图最大匹配来确定是不是能够全匹配,重点是n很大啊。
不过我们知道素数有个特性就是因数只有1和它本身。所以素数只能待在位置1或者标号为本身的位置上
1.如果m>n
如果n大于等于两个素数之间的距离,那么肯定是不可能匹配的。
如果小于直接二分图匹配一下。
2.如果m<=n
黄色部分长度为m如果m的长度大于等于两个素数的间隔那肯定是不符合题意。
如果小于那么就把m部分二分图匹配,匹配的话肯定符合题意,不匹配的话不符合题意,至于为什么不和重合部分匹配,看评论。
这两个一综合就会发现第二种如果mn互换和第一种是一样的。
至于二分图匹配:
就是n个点之间的匹配,如果两个点之间满足等式就连一条边,最后看看能不能全匹配上就可以了。
- #include <iostream>
- #include <cstdio>
- #include <algorithm>
- #include <cmath>
- #include <queue>
- #include <vector>
- #include <cstring>
- #include <string>
- using namespace std;
- const int MAXN=300+7;
- int n,m;
- int vis[MAXN],match[MAXN];
- int num[MAXN];
- int head[MAXN];
- int cnt;
- struct node
- {
- int v;
- int next;
- } edge[MAXN*MAXN];
- void add(int u,int v);
- int dfs(int u);
- int build()
- {
- cnt=0;
- memset(match,-1,sizeof(match));
- int i,j,v;
- for(i=1; i<=n; ++i)head[i]=-1;
- for(i=1; i<=n; ++i)
- {
- match[i]=-1;
- for(j=1; j<=n; ++j)
- {
- v=j+m;
- if(v%i==0)add(i,j);
- }
- }
- int sum=0;
- for(i=1; i<=n; ++i)
- {
- memset(vis,0,sizeof(vis));
- if(dfs(i))sum++;
- }
- return sum;
- }
- void add(int u,int v)
- {
- edge[cnt].v=v;
- edge[cnt].next=head[u];
- head[u]=cnt++;
- }
- int dfs(int u)
- {
- int i;
- for(i=head[u]; i!=-1; i=edge[i].next)
- {
- int v=edge[i].v;
- if(!vis[v])
- {
- vis[v]=1;
- if(match[v]==-1||dfs(match[v]))
- {
- match[v]=u;
- return 1;
- }
- }
- }
- return 0;
- }
- int main()
- {
- int t;
- scanf("%d",&t);
- for(int t1=1; t1<=t; ++t1)
- {
- scanf("%d%d",&n,&m);
- printf("Case #%d: ",t1);
- if(m<n)swap(m,n);
- if(n>300)puts("No");
- else
- {
- int ans=build();
- if(ans==n)puts("Yes");
- else puts("No");
- }
- }
- return 0;
- }
2016杭州ccpc相关推荐
- 2016 杭州 ccpc 铜牌旅游经历
和14学姐,15学弟参加了ccpc杭州站,然后弱菜因为实习太久,手生,打了个铜,羡慕同行的河工大银牌选手. 10.16晚上11点53的车,很拼~到点睡觉 10.17 噩耗,路上遇到施工结果晚点了三个多 ...
- 【云栖大会】你拿到2016杭州·云栖大会的入场券了吗?
本文转载自 浙江日报 记者 章卉 通讯员 陈倩璐 原文链接 一年一度的杭州·云栖大会将于本周(10月13日)回归.眼下,2016杭州·云栖大会已经进入倒计时阶段.记者从组委会获悉,今年的杭州·云栖大 ...
- AnyRTC将携互动直播连线2016杭州·云栖大会
核心提示:2016杭州·云栖大会即将开幕,作为互动直播新媒体提供商,AnyRTC不仅将为连开4天的大会提供全程互动直播服务,让您足不出户连线大会现场,还将在云栖展厅应邀参展,现场带来针对多个行业的互动 ...
- 2016 杭州·云栖大会 PDF 下载 | 那伊抹微笑
博文作者:妳那伊抹微笑 博客地址:http://blog.csdn.net/u012185296 博文标题:2016 杭州·云栖大会 PDF 下载 | 那伊抹微笑 个性签名:世界上最遥远的距离不是天涯 ...
- 2016杭州云栖大会10月开幕 规模翻倍
本文讲的是2016杭州云栖大会10月开幕 规模翻倍[IT168 云计算]去年盛况空前的杭州·云栖大会将于今年10月13日回归,这次大会规模将比去年翻倍,从原本2天的议程增加至4天,从10月13日持续到 ...
- 2016年CCPC/ICPC比赛总结
2016:我大一升入大二. 队友:GLY,WZK. 队名:开心就好(MyHappinessIsAll) 菜鸡战绩:5月省赛二等,9月东北四省赛二等,9月CCPC长春打铁,10月ICPC沈阳压线铜牌. ...
- 【SDCC 2016·杭州站】9月22日大数据实战专场精彩呈现
http://geek.csdn.net/news/detail/103266 [SDCC 现场报道]2016年9月22日-23日,由CSDN重磅打造的大数据核心技术与实战峰会.互联网应用架构实战峰会 ...
- 限时免费!2016杭州云栖大会抢票指南
2019独角兽企业重金招聘Python工程师标准>>> 一年一度的杭州云栖大会目前已开放报名,根据云栖官网显示的内容,2016年杭州云栖的主题是"互联网 创新 创业&quo ...
- 2016杭州网易Java开发工程师内推面试
杭州网易Java开发工程师(杭州研究院),2016年8月17号一天进行完成,笔试通过,杭州的职位招的人多,笔试相比北京来说算是好进的了.身边的同学投c++的基本都挂了,Java的都过了,可能c++大神 ...
最新文章
- path,classpath
- 从今天开始,你就可以通过云“体验”量子计算了!
- python+mysql:实现一千万条数据插入数据库
- cadence原理图封装pin名称重复_Cadence原理图库文件引脚名重复处理方法介绍
- QT绘制嵌套的圆饼状图
- SQL Server pivot行列转换案例分析
- 使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度
- Unity 2017 Game Optimization 读书笔记(1)Scripting Strategies Part 1
- SCREEN屏幕编程时候必须保证SCREN中词典的字段格式必须和数据表中字段的类型长度一致!...
- 第三篇:Spring Boot整合Servlet
- IBatisNet 升级到 .Net Framework 4.0 时发现 IBatisNet 一小BUG
- Android ADT Templates Android常用模版
- 启用Exchange邮箱审核后使用命令Search-MailboxAuditLog返回结果为空
- 自定义LinkedList实现
- 荣耀magicbook15C语言,荣耀MagicBook 15 2021版评测:轻薄机身+强悍性能 专为高效率办公而生...
- 强制客户端更新Silverlight XAP文件方法汇总
- 测试人员必备:常用自动化测试工具
- CSDN怎么获得积分和C币的方法
- 千万级数据查询中CK、ES、RediSearch方案的优化
- android 虚拟技术打开,雷电安卓模拟器VT虚拟化打开方法教程
热门文章
- java线程的优点_Java使用多线程的优势
- 拆分列成多行_把订单按货品拆分成多行(上)
- python执行oracle命令_如何使用cx\U Oracle运行非查询sql命令?
- Linux中实现远程登录Xshell和Xftp
- c++矩阵类_面向对象有限元编程|单元类
- update关联一个视图的时候特别慢_实现一个简单的Vue.js
- 单片机音频谱曲软件_【自己写的小软件】CLY单片机音乐代码超级生成器
- 【LeetCode笔记】169. 多数元素(Java、摩尔投票法、哈希表)
- lrtemplate如何导入pr_PR模板使用套路讲解 视频剪辑教程
- python压缩文件夹为zip_python打包压缩文件夹zip+组装文件夹