【NOIP2015模拟10.27】挑竹签
Description
挑竹签——小时候的游戏
夏夜,早苗和诹访子在月光下玩起了挑竹签这一经典的游戏。
挑竹签,就是在桌上摆上一把竹签,每次从最上层挑走一根竹签。如果动了其他的竹签,就要换对手来挑。在所有的竹签都被挑走之后,谁挑走的竹签总数多,谁就胜了。
身为神明的诹访子自然会让早苗先手。为了获胜,早苗现在的问题是,在诹访子出手之前最多能挑走多少竹签呢?
为了简化问题,我们假设当且仅当挑最上层的竹签不会动到其他竹签。
Input
输入文件mikado.in。
第一行输入两个整数n,m, 表示竹签的根数和竹签之间相压关系数。
第二行到m+1 行每行两个整数u,v,表示第u 根竹签压住了第v 根竹签。
Output
输出文件mikado.out。
一共一行,一个整数sum,表示最多能拿走sum 根竹签。
Sample Input
6 6
1 2
2 3
3 1
4 3
4 5
6 5
Sample Output
3
样例解释:
一共有6 根竹签,其中1 压住2,2 压住3,3 压住1,4 压住3 和5,6 压住5。最优方案中,我们可以依次挑走4、6、5 三根竹签。而剩下的三根相互压住,都无法挑走。所以最多能挑走3 根竹签。
Data Constraint
对于20% 的数据,有1<= n,m<= 20。
对于40% 的数据,有1 <= n,m <= 1 000。
对于100% 的数据,有1 <= n,m <= 1 000 000。
.
.
.
.
.
分析
拓扑排序即可
.
.
.
.
.
程序:
#include<iostream>
#include<stdio.h>
using namespace std;
int a[1000001],h[1000001],next[1000001],chu[1000001],ru[1000001];
int i,l,n,m,ans,tj;
void add(int x,int y)
{ru[y]++;chu[++tj]=y;next[tj]=h[x];h[x]=tj;
}int main()
{freopen("mikado.in","r",stdin);freopen("mikado.out","w",stdout);cin>>n>>m;for (int i=1;i<=m;i++){int x,y;cin>>x>>y;add(x,y);}int k=1;l=0;for (int i=1;i<=n;i++)if (!ru[i]) a[++l]=i;while (k<=l){int s=a[k++];ans++;int w=h[s];while (w!=0){ru[chu[w]]--;if (!ru[chu[w]]) a[++l]=chu[w];w=next[w];}}cout<<ans;return 0;fclose(stdin);fclose(stdout);
}
转载于:https://www.cnblogs.com/YYC-0304/p/9499927.html
【NOIP2015模拟10.27】挑竹签相关推荐
- 【NOIP2015模拟10.27】魔道研究
Description "我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力." --<The Grimoire of Mar ...
- 4270. 【NOIP2015模拟10.27】魔道研究
Description "我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力." --<The Grimoire of Mar ...
- jzoj4270. 【NOIP2015模拟10.27】魔道研究
题目描述 Description "我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力." --<The Grimoire o ...
- [NOIP2015模拟10.27] [JZOJ4270] 魔道研究 解题报告(动态开点+权值线段树上二分)
Description "我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力." --<The Grimoire of Mar ...
- 2018.07.12【2018提高组】模拟B组 【NOIP2015模拟10.27】魔法阵
#Description 帕秋莉·诺蕾姬,有着"不动的大图书馆" 的称号,擅长使用各种各样的属性魔法. --<东方求闻史记> 一如既往地,帕秋莉在图书馆中研究着魔法.今 ...
- jzoj4271. 【NOIP2015模拟10.27】魔法阵
题目描述 Description 帕秋莉·诺蕾姬,有着"不动的大图书馆" 的称号,擅长使用各种各样的属性魔法. --<东方求闻史记> 一如既往地,帕秋莉在图书馆中研究着 ...
- 【JZOJ B组】【NOIP2015模拟10.27】魔道研究
Description "我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力." --<The Grimoire of Mar ...
- jzoj4270 [NOIP2015模拟10.27]魔道研究 线段树
Description "我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力." --<The Grimoire of Mar ...
- 2018.07.12【2018提高组】模拟B组 【NOIP2015模拟10.27】魔道研究
#Description "我希望能使用更多的魔法.不对,是预定能使用啦.最终我要被大家称呼为大魔法使.为此我决定不惜一切努力." --<The Grimoire of Ma ...
最新文章
- 最大流问题模板-java-蓝桥杯-算法训练-网络流裸题
- python职能-高级Python开发工程师职位描述与岗位职责任职要求
- clone下来的代码push到自己的远程仓库中
- linux禁止客户端上传文件_实战 FastDFS Java 客户端上传文件
- .NET Core微服务之基于Ocelot实现API网关服务
- linux测试固态硬盘读写速度,在 Linux 上检测 IDE/SATA SSD 硬盘的传输速度
- 模板模式(部分方法延迟到子类实现)
- Python学习之==数组(二)
- windows下SVN日志反馈中文乱码的解决方法
- (转载)hibernate3.0配置文件模板
- Feed流及其常见算法简介
- 分布式光伏运维服务器,分布式光伏电站专业运维管理
- [几何] BZOJ 4246 两个人的星座
- [SPI+DMA] 驱动WS2812B显示时钟
- java架构师_如何成为一个资深Java架构师?
- MySQL - 索引的数据结构
- 手机上能学计算机一级b,全国计算机等级考试一级B的学习方法
- [转]JFFS2源代码情景分析Beta2
- 热更新方案-难不难在于你
- python三维图视角旋转_在python-matplotlib-Jupyter Noteb中交互式旋转三维绘图
热门文章
- 云炬60s看世界20211125
- 二十二、“此生无悔入华夏,来世还在种花家”(2021.7.1)
- 涵盖 14 大主题!最完整的 Python 学习实例集来了!
- OpenGL编程指南13:光源移动
- LM3S1138驱动函数SysCtlPeripheralEnable解析
- 7种CSS圆角框解决方案
- android.support.v7.app.ActionBarActivity
- 修改mysql的max_allowed_packet值
- scanf family API 高级用法
- diff命令输出格式解读