Atcoder AGC016 E Poor Turkeys
比赛的时候口胡这道题口胡了一年,看完题解被教做人
题意:有n只火鸡,m个猎人按序来杀火鸡,从自己预先选的两只中杀一只,问有多少火鸡对可以同时存活
考虑对于每一只火鸡i,按时间逆序维护一个最小的集合Si,满足当前时间其中的所有火鸡都活着才能保证最后火鸡i活下
在当前操作的最前面加入新的操作x y对结果转移的影响
1.x y均不在集合中,显然与i的死活无关,不管
2.一个在集合中,不放设为x,则y在这个操作前必须活着才能保证这个操作后x活着
3.都在集合中,gg
从最后一步逆推到第一步,得到集合Si
从我们的递推过程不难发现Si中的火鸡最后都是必死无疑,而且如果有火鸡在预料之外送人头也会gg
那么i和j能在最后同时存活的充要条件就是Si∩Sj==∅
bitset维护,完事
#include <bits/stdc++.h>
#define B bitset<500>
using namespace std;
int n,m;
int x[],y[];
bool die[];
B a[];
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
scanf("%d%d",&x[i],&y[i]);
for(int i=;i<=n;i++)
{
a[i][i]=;
for(int j=m;j;j--)
if(a[i][x[j]] && a[i][y[j]])
{
die[i]=;
break;
}
else
if(a[i][x[j]])
a[i][y[j]]=;
else
if(a[i][y[j]])
a[i][x[j]]=;
}
int ans=;
for(int i=;i<n;i++)
if(!die[i])
for(int j=i+;j<=n;j++)
if(!die[j] && (a[i]&a[j]).none())
++ans;
printf("%d\n",ans);
return ;
}
Atcoder AGC016 E Poor Turkeys的更多相关文章
- [AGC016E]Poor Turkeys
[AGC016E]Poor Turkeys 题目大意: 有\(n(n\le400)\)只火鸡,编号为\(1\)到\(n\),有\(m(m\le10^5)\)个人,每人指定了两只火鸡\(x\)和\(y\ ...
- AtCoder Grand Contest 016 E - Poor Turkeys
题目传送门:https://agc016.contest.atcoder.jp/tasks/agc016_e 题目大意: 有\(N\)只火鸡,现有\(M\)个人,每个人指定了两只火鸡\(x,y\),每 ...
- 【AGC016E】Poor Turkeys
Description 有\(n\)(\(1 \le n \le 400\))只鸡,接下来按顺序进行\(m\)(\(1 \le m \le 10^5\))次操作.每次操作涉及两只鸡,如果都存在则随意拿 ...
- 【题解】Atcoder AGC#16 E-Poor Turkeys
%拜!颜神怒A此题,像我这样的渣渣只能看看题解度日╭(╯^╰)╮在这里把两种做法都记录一下吧~ 题解做法:可以考虑单独的一只鸡 u 能否存活.首先我们将 u 加入到集合S.然后我们按照时间倒序往回推, ...
- AGC16E Poor Turkeys
输入样例: 10 10 8 9 2 8 4 6 4 9 7 8 2 8 1 8 3 4 3 4 2 7 输出样例#6: 5 话说这题虽然不是很OI但是确实挺锻炼思维的 一开始以为是用并查集之类的东西维 ...
- 【AtCoder】AGC016
A - Shrinking 用每个字母模拟一下就行 #include <bits/stdc++.h> #define fi first #define se second #define ...
- AGC016题解
呼我竟然真的去刷了016QwQ[本来以为就是个flag的233] 感觉AGC题目写起来都不是很麻烦但是确实动脑子qvq[比较适合训练我这种没脑子选手] 先扔个传送门:点我 A.Shrinking 题意 ...
- NOIp2018模拟赛三十三
神奇的一场... 成绩:100+0+14=114 A题是个体面很恐怖的题...然而看懂题意之后转化一下就变成了一道暴力傻逼题...但是不知道为什么dalao们都没写,讲题的时候挺尴尬的...yrx“瞄 ...
- 【AtCoder】CODE FESTIVAL 2017 Final
A - AKIBA 模拟即可 代码 #include <bits/stdc++.h> #define fi first #define se second #define pii pair ...
随机推荐
- css(5)
我觉得css中的margin:10px 0 0 4px; 先是margin-top生效,而margin-bottom则不生效.
- C/C++语法知识点汇总
* 静态局部变量,在不同函数中可以同名. 静态全局变量,在不同文件中可以同名. 静态函数,在不同文件中可以同名. * 普通全局变量和普通函数,在同一工程中不能同名. 在相链接的程序与库之间,可以同 ...
- python 动态添加属性及方法及“__slots__的作用”
1.动态添加属性 class Person(object): def __init__(self, newName, newAge): self.name = newName self.age = n ...
- 【Lintcode】096.Partition List
题目: Given a linked list and a value x, partition it such that all nodes less than x come before node ...
- Azure一个Cloud Service支持多个公网地址
Azure刚刚发布在同一个Cloud Service下支持多个公网IP地址的功能. 这个功能主要是用于: 当相同的端口需要公用相同的LoadBalance时. 比如: 一种使用场景是多组Web服务器被 ...
- git学习 7 git每次push都输入用户名 密码
用如下命令改成SSH的方式 git remote rm origin git remote add origin git@github.com:username/repository.git git ...
- php + mssql乱码
当用PHP自带的模块php_mssql.dll去调用MSSQL数据库时,中文数据会乱码.但如果我们采用ADODB的方式去做,就不会乱码了.请看下面的具体实例: 调用开源的adodb.inc.php(支 ...
- 错误:(26, 13) Failed to resolve: com.android.support:appcompat-v7:27.+
小编也是初学安卓,今天配置环境的时候遇到这个问题了,搞了半天终于找到了问题 在build.gradle中添加 allprojects { repositories { jcenter() maven ...
- Hadoop中Partition解析
1.解析Partition Map的结果,会通过partition分发到Reducer上,Reducer做完Reduce操作后,通过OutputFormat,进行输出,下面我们就来分析参与这个过程的类 ...
- 4、map和Tuple
一.map 1.创建map //创建一个不可变的Map scala> val ages = Map("Leo" -> 30, "Jen" -> ...