4269. 【NOIP2015模拟10.27】挑竹签

题目描述

挑竹签——小时候的游戏
夏夜,早苗和诹访子在月光下玩起了挑竹签这一经典的游戏。
挑竹签,就是在桌上摆上一把竹签,每次从最上层挑走一根竹签。如果动了其他的竹签,就要换对手来挑。在所有的竹签都被挑走之后,谁挑走的竹签总数多,谁就胜了。
身为神明的诹访子自然会让早苗先手。为了获胜,早苗现在的问题是,在诹访子出手之前最多能挑走多少竹签呢?

为了简化问题,我们假设当且仅当挑最上层的竹签不会动到其他竹签。

输入

第一行输入两个整数n,m, 表示竹签的根数和竹签之间相压关系数。
第二行到m+1 行每行两个整数u,v,表示第u 根竹签压住了第v 根竹签

输出

一共一行,一个整数sum,表示最多能拿走sum 根竹签。

样例输入

6 6
1 2
2 3
3 1
4 3
4 5
6 5

样例输出

3
样例解释:
一共有6 根竹签,其中1 压住2,2 压住3,3 压住1,4 压住3 和5,6 压住5。最优方案中,我们可以依次挑走4、6、5 三根竹签。而剩下的三根相互压住,都无法挑走。所以最多能挑走3 根竹签。

其实这道题挺简单的,宽搜一下就行了(可怜我比赛打深搜标记超时)。

先把所有点的入度算出来,然后将入度为0的点加入宽搜队列并更新答案

将队列头指针指向的点能到达的点枚举一遍(链式前向星),将这些边给删掉,即给能到达的点入度减一,再判断它的入度是否为零,为0则加入队列,重复操作,并更新答案。

证明很简单,因为没有入度的点是不可能在环内的,将没有入度的点给删掉,又会出现新的没有入度的点,如果到之后有点的入度仍然不为0,要不就是因为在环中,要不就是因为某个可以到达它的点在环中。

JZOJ2018.07.12【2018提高组】模拟B组 挑竹签相关推荐

  1. JZOJ2018.07.12【2018提高组】模拟B组 魔道研究

    4270. [NOIP2015模拟10.27]魔道研究 题目描述 "我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力." --&l ...

  2. 2018.07.07【2018提高组】模拟C组

    前言 今天各种水分,就水到了50分,(dalao太强了) 题目 JZOJ 1494 密码 题目大意:高精度乘法 (题目数据范围:102410241024,实际数据范围102410^{24}1024,一 ...

  3. JZOJ5857 【NOIP提高组模拟A组2018.9.8】没有上司的舞会

    题目 Description "那么真的有果尔德施坦因这样一个人?"他问道. "是啊,有这样一个人,他还活着.至于在哪里,我就不知道了." "那么那个 ...

  4. JZOJ 5281. 【NOIP提高组模拟A组8.15】钦点

    Description Input Output Sample Input 4 4 2 a a b b a a b b c c d d c c d d 1 1 3 3 2 2 3 1 1 3 2 2 ...

  5. 【二分,找规律】Day 14 提高组模拟C组 T1 小麦亩产一千八

    题目大意 给定斐波那契的第aaa项,求出第b" role="presentation">bbb项,默认第0项为1 解题思路 方法一:递推 找到规律后O(b)O(b) ...

  6. 2018.12.08【NOIP提高组】模拟B组总结(未完成)

    2018.12.08[NOIP提高组]模拟B组总结 diyiti 保留道路 进化序列 B diyiti Description 给定n 根直的木棍,要从中选出6 根木棍,满足:能用这6 根木棍拼出一个 ...

  7. JZOJ 5814. 【NOIP提高A组模拟2018.8.14】 树

    梦游中的你来到了一棵 N 个节点的树上. 你一共做了 Q 个梦, 每个梦需要你从点 u 走到点 v 之后才能苏醒, 由于你正在梦游, 所以每到一个节点后,你会在它连出去的边中等概率地选择一条走过去, ...

  8. 5814. 【NOIP提高A组模拟2018.8.14】 树(期望 + 倍增)

    5814. [NOIP提高A组模拟2018.8.14] 树 Problem 给定一棵nnn个点的树,m" role="presentation">mmm次询问,每次 ...

  9. 第一届『Citric杯』NOIP提高组模拟赛 题解

    [官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...

最新文章

  1. Outlook中删除重复的邮件
  2. 安装 kubernetes-dashboard
  3. IOS中UITableview中封装九宫格
  4. P3482 [POI2009]SLO-Elephants
  5. 山西上党残疾男子“只”手脱贫 带领村民增收
  6. Linux 实操 —— 日志筛选操作(sed与wc命令介绍)
  7. 广告清除:Adware Zap Browser Cleaner for mac
  8. phpcms函数:用*号替换(私密信息)中间数据(如手机号、邮箱)
  9. Iphone客户端程序员半年工作总结
  10. pythoninit作用_简介Python中的__init__的作用
  11. php数组排序不要用函数,PHP数组排序函数使用方法
  12. [读书笔记]机器学习:实用案例解析(4)
  13. 《从零开始的RPG游戏制作教程》前言
  14. 做好里程碑就是项目成功了一半
  15. 阿里巴巴 html圆代码,阿里巴巴国际站HTML代码全透视
  16. 存储,对比私有云和公有云的不同
  17. 黑马程序员————小牛皮糖学习笔记————IO流之未使用缓冲区读写文件
  18. SAS9.4+sid更新
  19. 含有未知中间变量同时需要传递其他中间变量的微分方程参数拟合
  20. 计算机网络打不开怎么办,电脑网页打不开怎么回事

热门文章

  1. flutter图片聊天泡泡_基于 Flutter+Dart 聊天实例 | Flutter 仿微信界面聊天室
  2. 精细化耕耘是B2C转战B2B良好的开端
  3. Ubuntu 16.04 基本安装和美化
  4. mybatis的parameterType属性那些情况下要写 哪些情况下不用写
  5. Cholesky分解、乔列斯基分解
  6. Python分布式爬虫详解(二)
  7. 博尔特,菲尔普斯和埃蒙斯
  8. 前端和后端是如何交互的
  9. 使用cygwin建立eCos开发环境(验证通过)
  10. 401错误信息页html,Http 401错误重现实验及解决办法