[POI2008]MAF-Mafia

很容易看出是拓扑 但不容易想出来怎么做【可能是我太菜

首先 入度为零的人是肯定死不了的

接着 我们分成环和链分析

对于一个链

最多的情况就是顺着一个个开枪 最后剩一个( (n - 1) -> (n), (n - 2) ->(n - 1) …… )

最少的情况就是死一半(1->2, 3->4……)

对于一个环

它和链基本上一样

区别在于从任何一个人开始都不会影响结果

这个性质很有用

因为当有环接在链上时

最多的情况下环上的点会全部挂掉

 void bfs(){
for(int i = ; i <= n; i++)
if(!ind[i]){
q[++ans1] = i;
ans2++;
}
for(int i = ; i <= ans1; i++){
int fro = aim[q[i]];
if(vis[fro]) continue;
ind[aim[fro]]--;
vis[fro] = ;
otd[aim[fro]] = ;
if(!ind[aim[fro]]) q[++ans1] = aim[fro];
}//删链过程 非常重要!
for(int i = ; i <= n; i++)
if(!vis[i] && ind[i]){
int len = , flag = ;
for(int j = i; !vis[j]; j = aim[j]){
vis[j] = ;
len++;
flag |= otd[j];
}
//printf("%d %d\n", flag, len);
ans1 += (len >> );
if(len > && !flag) ans2++;
}
}

关键部分

【POI 每日题解 #4】 [POI2008]MAF-Mafia的更多相关文章

  1. 【POI每日题解 #8】DYN-Dynamite

    你问蒟蒻为什么一天写两篇每日题解? 难道每日坚果你不能一天吃两包吗? 题目链接 哇…这道题第一反应就是二分答案[太明显了 枚举答案 就那个“关键节点到这些点中距离的最小值的最大值”[蒟蒻读了好几遍…… ...

  2. 【POI每日题解 #7】TES-Intelligence Test

    题目链接 这道题第一眼看去类比BANK-Cash Dispenser 不过1e6 * 1e6 = 1e12   分分钟MLE啊 想到优化 就yy到一种近似主席树的做法 来维护类似BANK的一堆序列 开 ...

  3. 【POI每日题解 #9】SKA-Piggy Banks

    题目链接 题意: 有一棵环套树 求最少从多少个节点出发能沿边走过整棵树 环套树 并查集求联通块 有几块就砸几个 太简单不发代码了 不过某大佬的环套树找环dfs让我研究了好久… 贴一下以Orz #inc ...

  4. 【POI每日题解 #6】KRA-The Disks

    题目链接 : [POI2006]KRA-The Disks 好有既视感啊... 注意一下输入输出 输入是从上到下输入箱子的宽度 输出是最上面的积木停在哪一层 即 箱子高度 - 积木高度 + 1 在初始 ...

  5. 【POI每日题解 #5】 DWU-Double-row

    题目链接 [POI2005]DWU-Double-row wwwww 之前写了半小时 一卡机 没啦QAQ 简单说一下吧 [吐血ing 这道题长得好二分图啊 所以本能地连边 一种是A边 连可交换的数对 ...

  6. 每日题解: 两数之和 & 有效的括号

  7. 题解 【POI2008】KUP-Plot purchase

    题面 先把题目意思讲一下吧: 给一个 \(n*n\) 的地图,每个格子有一个价格,找一个矩形区域,使其价格总和位于\([k,2k]\). 那么首先,可以想到,如果\(a[i][j]\)(格子的价格,下 ...

  8. Bzoj 1040 [ZJOI2008]骑士 题解

    1040: [ZJOI2008]骑士 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5368  Solved: 2044[Submit][Status ...

  9. [POI2008]枪战Maf题解

    问题 C: [POI2008]枪战Maf 时间限制: 1 Sec  内存限制: 256 MB 题目描述 有n个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺 ...

随机推荐

  1. java,javascript中的url编码

    真实场景 url示例如下 http://localhost:31956/Login/Auto?Token=e8a67a9f-c062-4964-b703-d79f29c8b64e&Return ...

  2. odoo订餐系统之类型设计

    这次开发的模块是订餐的类型设计,比如大荤 小荤 蔬菜 米饭 等基本数据.1.设计model类,很简单就一个字段: class MyLunchProductionCategory(osv.Model): ...

  3. OI骗分神器——模拟退火算法

    前言&&为什么要学模拟退火 最近一下子学了一大堆省选算法,所以搞一个愉快一点的东西来让娱乐一下 其实是为了骗到更多的分,然后证明自己的RP. 说实话模拟退火是一个集物理与IT多方面知识 ...

  4. 任务(task)

    任务概述 线程(Thread)是创建并发的底层工具,因此有一定的局限性(不易得到返回值(必须通过创建共享域):异常的捕获和处理也麻烦:同时线程执行完毕后无法再次开启该线程),这些局限性会降低性能同时影 ...

  5. SpringBoot日记——任务处理 之 异步、定时、邮件

    ---恢复内容开始--- 直接步入正题. 异步任务 异步任务比较简单,只需要两个注解就可以搞定,我们直接来看如何使用: 1.创建一个service,带上@EnableAsync,就是开启异步任务的注解 ...

  6. MFS+Keepalived双机高可用热备方案操作记录

    基于MFS的单点及手动备份的缺陷,考虑将其与Keepalived相结合以提高可用性.在Centos下MooseFS(MFS)分布式存储共享环境部署记录这篇文档部署环境的基础上,只需要做如下改动: 1) ...

  7. 11.18 Daily Scrum

    这两天开发人员陆续提交了自己开发的部分. 目前所有开发任务都已经完成,剩下的只是测试和整合,做最后的冲刺. 明天的任务: 李承晗:测试与整合

  8. MySQL基础~~增、删、改、简单查

    mysql> desc demo; +-----------+------------+------+-----+---------+----------------+ | Field | Ty ...

  9. CentOS查看版本及架构信息

    https://blog.csdn.net/shuaigexiaobo/article/details/78030008

  10. XShell+Xmanager实现在XShell中显示远程服务器的图形界面

    http://blog.csdn.net/linghao00/article/details/8768435