【Henu ACM Round#19 F】Dispute
【链接】  我是链接,点我呀:) 
 【题意】
在这里输入题意
【题解】
这一题和这一题很像 ([链接](http://www.cnblogs.com/AWCXV/p/8377532.html) )
会发现如果a[i]!=b[i]那么就按下i就好了。
然后改变和他相邻的点。
此后a[i]再也不可能和b[i]相同了。
(其他点无论怎么按b[i]只会变大)
但是这样直接暴力写会超时->O(N^2)。
则写一个队列。
处理和他相邻的点的时候。
如果发现a[y]==b[y]
就重新入队。
因为可以保证每个点最多操作一次。
所以复杂度就是O(n+m)的了。
【代码】
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e5;
int n,m,a[N+10],b[N+10];
vector<int> g[N+10];
queue<int> dl;
int main()
{
    #ifdef LOCAL_DEFINE
        freopen("rush_in.txt","r",stdin);
    #endif
    ios::sync_with_stdio(0),cin.tie(0);
    cin >> n >> m;
    for (int i = 1;i <= m;i++){
        int x,y;
        cin >> x >> y;
        g[x].push_back(y);
        g[y].push_back(x);
    }
    for (int i = 1;i <= n;i++) cin>>a[i];
    for (int i = 1;i <= n;i++) b[i] =0;
    vector<int> v;v.clear();
    for (int i = 1;i <= n;i++)
        if (b[i]==a[i]){
            dl.push(i);
        }
    while (!dl.empty()){
        int x = dl.front();
        dl.pop();
        if (b[x]!=a[x]) continue;
        v.push_back(x);
        for (int y:g[x]){
            b[y]++;
            if (b[y]==a[y]){
                dl.push(y);
            }
        }
    }
    cout<<(int)v.size()<<endl;
    for (int x:v){
        cout<<x<<' ';
    }
    return 0;
}
												
											【Henu ACM Round#19 F】Dispute的更多相关文章
- 【Henu ACM Round#16 F】Om Nom and Necklace
		
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] KMP算法可以把"i前缀"pre[i] 分成ssssst的形式 这里t是s的前缀. 然后s其实就是pre[i]中 ...
 - 【Henu ACM Round#17  F】Upgrading Array
		
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 如果我们对某一个位置i操作两次的话. 显然结果就和操作一次一样. 因为第一次操作过后1..i这些数字就变成是互质的了. gcd为1. ...
 - 【Henu ACM Round #13 F】Fibonacci-ish
		
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 枚举序列的头两个数字是什么 O(N^2) 然后头两个数字确定之后. f[3],f[4]..就确定了 只需查看f[3],f[4]..是 ...
 - 【Henu ACM Round#15 F】Arthur and Questions
		
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] a1+a2+...+ak<a2+a3+...ak+1 ->a1<ak+1 a2+a3+...+ak+1<a3 ...
 - 【Henu ACM Round#18 F】Arthur and Walls
		
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑,为什么一个连通块里面的空格没有变成一个矩形? 如果不是形成矩形的话. 肯定是因为某个2x2的单张方形里面. 只有一个角是墙.其 ...
 - 【Henu ACM Round#20 F】 Arthur and Brackets
		
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 所给的li,ri是左括号从左到右的顺序给的. (且注意长度是2*n 现在我们先把第一个左括号放在第1个位置. 然后考虑第二个位置. ...
 - 【Henu ACM Round#19 E】 Om Nom and Candies
		
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 紫书上的原题: 链接 [代码] #include <bits/stdc++.h> #define ll long lon ...
 - 【Henu ACM Round#19 D】 Points on Line
		
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑l..r这个区间. 且r是满足a[r]-a[l]<=d的最大的r 如果是第一个找到的区间,则直接累加C(r-l+1,3); ...
 - 【Henu ACM Round#19 C】 Developing Skills
		
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 优先把不是10的倍数的变成10的倍数. (优先%10比较大的数字增加 如果k还有剩余. 剩下的数字都是10的倍数了. 那么先加哪一个 ...
 
随机推荐
- Sublime使用随记
			
1.安装 Package Control Ctrl+` 打开命令行,执行如下代码: 适用于 Sublime Text 3: import urllib.request,os;pf='Package C ...
 - python3 之 Ellipsis
			
在翻django 代码的时候无意中看到的, 主要还是在注解时候使用 官方参考:https://docs.python.org/3/library/constants.html#Ellipsis 注意: ...
 - centos7 jumpserver 部署和使用手册(一)
			
测试推荐环境 CPU: 64位双核处理器 内存: 4G DDR3 数据库:mysql 版本大于等于 5.6 mariadb 版本大于等于 5.5.6 环境 系统: CentOS 7.2 IP: 192 ...
 - Python学习笔记(二):字符串类型
			
在上一篇随笔(https://www.cnblogs.com/g-qiang/p/10448813.html)中,说到 Python 有六种标准数据类型,而数字类型和字符串类型又是其中基本的数据类型. ...
 - Hibernate简单的保存操作
			
1.这里面我想先说一下session对象的创建,这个是我们操纵数据库的核心对象,因此首先我们应该获取相应的session对象. public static Configuration cfg; pub ...
 - [luogu]P4312 [COCI 2009] OTOCI / 极地旅行社(LCT)
			
P4312 [COCI 2009] OTOCI / 极地旅行社 题目描述 不久之前,Mirko建立了一个旅行社,名叫"极地之梦".这家旅行社在北极附近购买了N座冰岛,并且提供观光服 ...
 - php把数据表导出为Excel表的最简单、最快的方法(不用插件)
			
亲测可用,把下面的数据换成自己的即可 <?php header("Content-type:application/vnd.ms-excel");header("C ...
 - idea 包的显示方式
			
idea 可以通过点击Project的导航栏里的小齿轮里面有一个 Flatten packages 选项,将其勾上.就可以得到跟eclipse一样的包的显示方式. 没有设置默认是这样的 2018-06 ...
 - Linux shell 内部变量
			
1 TMOUT 来自bash的解释: If set to a value greater than zero, TMOUT is treated as the default timeout for ...
 - 最多包含2/k个不同字符的最长串
			
看这里的解答: http://www.cnblogs.com/grandyang/p/5351347.html 通用解决了2和k的问题.