Kingdom of Obsession---hdu5943(二分匹配)

时间:2022-09-30 17:33:23

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5943

题意:给你两个数n, s 然后让你判断是否存在(s+1, s+2, s+3, ... , s+n )的任意排列方式使得每个数都满足当前数num,与num所在位置 pos  形成num%pos=0;

例如 n = 4 , s = 11

num = {13, 14, 15, 12}

pos =  {1,    2,   3,    4}

每个num与之对应的pos都是num%pos = 0;的关系

分为两种情况:当s+1>n 时,我们只需看第二个数组中是否含有>=2个素数即可, 因为1只有1个;

当s+1<=n时,两个区间有重叠,我们可以忽略这些重叠部分,看两端的即可,其实就是交换一下n,s的值; 

其实就是两个数组建图,然后求最大匹配是否为1,当然n比较大,但是连续600个数中间一定包含>=2个素数,所以当n<600时可以用二分匹配来做;

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<vector>
using namespace std;
typedef long long LL;
const int oo = 0xfffffff;
const int N = ; int used[N], vis[N], n, s;
vector<int> G[N]; bool Find(int u)
{
int len=G[u].size();
for(int i=; i<len; i++)
{
int v = G[u][i];
if(!vis[v])
{
vis[v] = ;
if(!used[v] || Find(used[v]))
{
used[v] = u;
return true;
}
}
}
return false;
} int main()
{
int T, t = ;
scanf("%d", &T);
while(T --)
{
scanf("%d %d", &n, &s); if(s+ <= n)///忽略中间重合的部分;
swap(s, n); if(n > )///因为连续600个数中一定有>=2个素数, 1只有一个,所以结果都是No;
{
printf("Case #%d: No\n", t++);
continue;
} for(int i=; i<=n; i++)
G[i].clear(); for(int i=; i<=n; i++)
{
for(int j=; j<=n; j++)
{
if((s+i)%j == )///说明s+i是j的倍数;
G[i].push_back(j);
}
}
memset(used, , sizeof(used));
int ans = ;
for(int i=; i<=n; i++)
{
memset(vis, , sizeof(vis));
ans += Find(i);
}
if(ans != n)///必须要找到所有与之对应的才可以;
printf("Case #%d: No\n", t++);
else
printf("Case #%d: Yes\n", t++);
}
return ;
}

Kingdom of Obsession---hdu5943(二分匹配)的更多相关文章

  1. HDU 5943 Kingdom of Obsession 【二分图匹配 匈牙利算法】 (2016年中国大学生程序设计竞赛(杭州))

    Kingdom of Obsession Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  2. hdu5943 Kingdom of Obsession 二分图&plus;打表找规律

    题目传送门 Kingdom of Obsession Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Ja ...

  3. hdu 5943 Kingdom of Obsession 二分图匹配&plus;素数定理

    Kingdom of Obsession Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  4. HDU 3861 The King’s Problem(tarjan缩点&plus;最小路径覆盖:sig-最大二分匹配数,经典题)

    The King’s Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  5. zoj 2362 Beloved Sons【二分匹配】

    题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2361 来源:http://acm.hust.edu.cn/vjudg ...

  6. POJ 1274 The Perfect Stall、HDU 2063 过山车(最大流做二分匹配)

    The Perfect Stall Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 24081   Accepted: 106 ...

  7. &lbrack;kuangbin带你飞&rsqb;专题十 匹配问题 二分匹配部分

    刚回到家 开了二分匹配专题 手握xyl模板 奋力写写写 终于写完了一群模板题 A hdu1045 对这个图进行 行列的重写 给每个位置赋予新的行列 使不能相互打到的位置 拥有不同的行与列 然后左行右列 ...

  8. BZOJ 1189 二分匹配 &vert;&vert; 最大流

    1189: [HNOI2007]紧急疏散evacuate Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1155  Solved: 420[Submi ...

  9. poj 2060 Taxi Cab Scheme &lpar;二分匹配&rpar;

    Taxi Cab Scheme Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 5710   Accepted: 2393 D ...

随机推荐

  1. 用DataGridView导入TXT文件,并导出为XLS文件

    使用 DataGridView 控件,可以显示和编辑来自多种不同类型的数据源的表格数据.也可以导出.txt,.xls等格式的文件.今天我们就先介绍一下用DataGridView把导入txt文件,导出x ...

  2. SQL Server Lock Escalation - 锁升级

    Articles Locking in Microsoft SQL Server (Part 12 – Lock Escalation) http://dba.stackexchange.com/qu ...

  3. 《java编程思想》读书笔记(一)开篇&amp&semi;第五章&lpar;1&rpar;

    2017 ---新篇章  今天终于找到阅读<java编程思想>这本书方法了,表示打开了一个新世界. 第一章:对象导论 内容不多但也有20页,主要是对整本书的一个概括.因为已经有过完整JAV ...

  4. innodb master主线程

    http://wenku.baidu.com/link?url=MhY9yhHTgeOlyooWDvaVfPkW3cuVSX_rIZv2QtCu7GLeEuqSfYh_M7Yvl1N4IY08a3ws ...

  5. SQL Server 两种判断表名是否存在且删除的方式

      邓老师(老邓)教的 if exists(select * from sysobjects where name='Table_88') drop table Table_88  偷的((*^__^ ...

  6. 五金配件行业ERP解决方案

    五金行业信息化需求分析 “国内竞争国际化,国际竞争国内化”将是近几年我国五金行业发展的特点,中国作为全球五金制造中心的地位将进一步稳固.随着中国融入全球经济环境进程的加快以及经济实力的快速崛起,中国已 ...

  7. LINUX 笔记-mv命令

    常用参数: -f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖 -i :若目标文件已经存在,就会询问是否覆盖 -u :若目标文件已经存在,且比目标文件新,才会更新

  8. A Simple Problem with Integers POJ - 3468 &lpar;分块&rpar;

    题目链接:https://cn.vjudge.net/problem/POJ-3468 题目大意:区间加减+区间查询操作. 具体思路:本来是一个线段树裸题,为了学习分块就按照分块的方法做吧. 分块真的 ...

  9. CMS垃圾收集器与G1收集器

    1.CMS收集器 CMS收集器是一种以获取最短回收停顿时间为目标的收集器.基于“标记-清除”算法实现,它的运作过程如下: 1)初始标记 2)并发标记 3)重新标记 4)并发清除 初始标记.从新标记这两 ...

  10. asp&period;net动态增加服务器端控件并提交表单

    为什么要用原生的呢? 1.目的 原生出现浏览器兼容性问题 极少,不用测试多浏览兼容性 .需要考虑到市面上的其他垃圾浏览器. 2.性能不好 如果不考虑第一条 你可以换一种方式 直接上代码 .aspx页面 ...