Box and Ball
Posted zangzang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Box and Ball相关的知识,希望对你有一定的参考价值。
5582: Box and Ball
时间限制: 2 Sec 内存限制: 256 MB提交: 276 解决: 93
[提交][状态][讨论版][命题人:admin]
题目描述
Snuke will perform the following M operations, one by one. In the i-th operation, he randomly picks one ball from box xi, then he puts it into box yi.
Find the number of boxes that may contain the red ball after all operations are performed.
Constraints
2≤N≤105
1≤M≤105
1≤xi,yi≤N
xi≠yi
Just before the i-th operation is performed, box xi contains at least 1 ball.
输入
N M
x1 y1
:
xM yM
输出
样例输入
3 2
1 2
2 3
样例输出
2
提示
Just after the first operation, box 1 is empty, box 2 contains one red ball and one white ball, and box 3 contains one white ball.
Now, consider the second operation. If Snuke picks the red ball from box 2, the red ball will go into box 3. If he picks the white ball instead, the red ball will stay in box 2. Thus, the number of boxes that may
contain the red ball after all operations, is 2.
//模拟取球过程 分类讨论 模拟法
#include <iostream> #include <cstdio> #include <algorithm> using namespace std; struct box { int num; int flag; }A[100005]; int main() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) { if(i==1) { A[i].flag = 1; A[i].num = 1; } else { A[i].flag = 0; A[i].num = 1; } } int x,y; for(int i=0;i<m;i++) { cin>>x>>y; if(A[x].flag==1) { if(A[x].num==1) { A[y].flag = 1; A[y].num++; A[x].flag = 0; A[x].num--; } else { A[x].num--; A[y].num++; A[y].flag = 1; } } else { A[x].num--; A[y].num++; } } int ans = 0; for(int i=1;i<=n;i++) { if(A[i].flag==1) { ans++; } } cout<<ans; }
以上是关于Box and Ball的主要内容,如果未能解决你的问题,请参考以下文章
var ball0=new Ball("executing") 是怎样被执行的?
[RxJS] Implement RxJS `mergeMap` through inner Observables to Subscribe and Pass Values Through(代码片段
环境初始化 Build and Install the Apache Thrift IDL Compiler Install the Platform Development Tools(代码片段