维护一个保护集合$S$,表示哪些点$A$可能胜利。

首先将所有绿点加入$S$。

$1.$对于一个不在$S$的$A$点,若它存在某个后继在$S$中,则将其加入$S$。

$2.$对于一个不在$S$的$B$点,若它所有后继都在$S$中,则将其加入$S$。

通过拓扑可以$O(n+m)$求出$S$集合,那么剩下的点$A$必败。

$1.$对于一个在$S$的$A$点,若它所有后继都不在$S$中,则将其从$S$中移除。

$2.$对于一个在$S$的$B$点,若它存在某个后继不在$S$中,则将其从$S$中移除。

同样可以通过拓扑$O(n+m)$求出最终的$S$集合。

这样会导致某些绿点不在$S$中,那么它们就失去了作为绿点的价值,将其标记为白点。

重复运行这个算法$O(n)$轮直到所有绿点都发挥了价值,此时$S$中的点$A$必胜。

时间复杂度$O(n(n+m))$。

#include<cstdio>
const int N=3010,M=30010;
int n,m,i,j,x,c[N],d[N],g[N],v[M],nxt[M],ed,q[N],vis[N],deg[N],cnt;
inline void add(int x,int y){d[v[++ed]=x]++;nxt[ed]=g[y];g[y]=ed;}
bool solve(){int i,x,h=1,t=0;for(i=1;i<=n;i++){vis[i]=c[i],deg[i]=d[i];if(vis[i])q[++t]=i;}while(h<=t)for(i=g[q[h++]];i;i=nxt[i])if(!vis[x=v[i]])if(x<=m)vis[q[++t]=x]=1;else if(!(--deg[x]))vis[q[++t]=x]=1;for(i=h=1,t=0;i<=n;i++){deg[i]=d[i];if(!vis[i])q[++t]=i;}while(h<=t)for(i=g[q[h++]];i;i=nxt[i])if(vis[x=v[i]])if(x>m)vis[q[++t]=x]=0;else if(!(--deg[x]))vis[q[++t]=x]=0;for(t=0,i=1;i<=n;i++)if(c[i]&&!vis[i])c[i]=0,t=1;return t;
}
int main(){scanf("%d%d",&m,&n);n+=m;for(i=1;i<=n;i++)for(scanf("%d%d",&c[i],&j);j--;add(i,x))scanf("%d",&x);while(solve());for(i=1;i<=n;i++)if(vis[i])q[++cnt]=i;for(printf("%d\n",cnt),i=1;i<=cnt;i++)printf("%d\n",q[i]);return 0;
}

  

转载于:https://www.cnblogs.com/clrs97/p/7378075.html

BZOJ2948 : [Poi2001]绿色游戏相关推荐

  1. 使用苹果企业证书签名的绿色游戏应用有以下几个优势:

    避免了越狱风险 使用苹果企业证书签名的应用不需要越狱设备就可以安装和使用,因此可以避免越狱风险.越狱是一种非法行为,会给设备带来安全隐患,而苹果企业证书签名的应用则遵循苹果公司的安全规范,保证了应用的 ...

  2. 富士色彩配方咖啡馆在上海开业;万代南梦宫娱乐加入玩游戏,救地球联盟 | 全球TMT...

    国内市场 海信正式赞助2022卡塔尔世界杯.国际足联(FIFA)主席詹尼·因凡蒂诺公开宣布了这一消息.他表示,海信引人注目的产品以及尖端科技将为球迷带来难以置信的观看体验.国际足联和海信将联合通过科技 ...

  3. Python 实现 游戏EVE 自动化挖矿 注:模拟点击原理 附演示视频

    出站挖矿 回站放矿 残血逃命 直接上代码.认真阅读前几行注释.而且建议绿色游戏,我写了这个代码,毁了我对这个游戏的热情.大家娱乐敲代码就好了.最后给大家一个演示视频. 演示视频,b站BV1pK4y1x ...

  4. 游戏辅助丨手把手简单实现射击游戏逆向(1)

    作者:问号哥 前言:        首先跟大家说说我对游戏辅助的理解.什么是游戏辅助呢?一是通过修改程序中的数据达到变态功能,比如变态血量,变态射速,飞天遁地:二是通过修改游戏程序代码的执行顺序,实现 ...

  5. 「雅礼集训 2018 Day10」贪玩蓝月

    大渣好,我四渣渣辉,点一下,玩一年,装备不花一分钱,说话战斗,罩杯回收,找一基友,极限到手. 0 元 VIP,3 天满级,一秒一刀 999,装备全爆 666,广告做得再牛,不如进服遛一遛! 古天乐绿了 ...

  6. 病毒木马查杀实战第013篇:一个基于.NET的“敲竹杠”病毒研究

    前言 恶意程序发展至今,其功能已经从最初的单纯破坏,不断发展为隐私的窥探,信息的盗取,乃至如今非常流行的"敲竹杠"病毒,用于勒索.可见随着时代的发展,病毒的作者们往往也是想利用自己 ...

  7. 【续】我的FLASH情结2010——浅谈FLASH WEB GAME与创业

    ★前端与美术的配合 →老闪客们应该都知道,FLASH这款软件在历史很长一段时间内都是用来做动画的,闪客和美术在这段时间内本就是同根生.后来随着第二版AS1和AS2逐渐完善,以及AS3的强势出炉,闪客们 ...

  8. 我的FLASH情结2010——浅谈FLASH WEB GAME与创业(2)

    ★前端与美术的配合 →老闪客们应该都知道,FLASH这款软件在历史很长一段时间内都是用来做动画的,闪客和美术在这段时间内本就是同根生.后来随着第二版AS1和AS2逐渐完善,以及AS3的强势出炉,闪客们 ...

  9. [转]我的FLASH情结2010——浅谈FLASH WEB GAME与创业(下)

    我的FLASH情结2010--浅谈FLASH WEB GAME与创业 ★前端与美术的配合 →老闪客们应该都知道,FLASH这款软件在历史很长一段时间内都是用来做动画的,闪客和美术在这段时间内本就是同根 ...

最新文章

  1. 虚幻4皮肤材质_虚幻周报20200721 | CJ就要开始啦~
  2. Android学习笔记--WIFI的操作
  3. python3.6安装-python3.6的安装及注意事项
  4. Asp.Net.Core 系列-中间件和依赖注入进阶篇
  5. python可以在unix_在python窗口中使用绝对的unix路径
  6. JavaFX UI控件教程(二十八)之UI控件的自定义
  7. Javascript基础(一)
  8. 清空缓存的命令_超详细的mysql数据库查询缓存原理解析、涉及命令、流程分析等...
  9. 强大的Spring Boot启动监听器事件-初始化系统账号密码
  10. 请查收,一份让你年薪突破20W的Python爬虫笔记!
  11. oracle自动创建分区存储过程,oracle 存储过程创建表分区
  12. 矩阵的谱(半径)及其性质
  13. 3.Docker技术入门与实战 --- 使用Docker镜像
  14. 【阿卡乐谱】【日常分享】超级强大的简谱-《大海啊,故乡》
  15. 哪个手机浏览器可以倍速_手机四款浏览器APP的比较
  16. 请编程序将china译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如:字母A后面4个字母为E,因此,China应译为Glmre。
  17. 倒数15日开幕!第八届全球云计算大会解锁主论坛重磅嘉宾
  18. Java深入浅出讲解
  19. 【数据库】--- Redis
  20. 为什么D类音频功放可以免输出滤波器

热门文章

  1. Webpack基础之加载器
  2. GStreamer基础教程07 - 播放速率控制
  3. markdown 转义字符
  4. [LeetCode] 547. Friend Circles Java
  5. 如何使用Python脚本
  6. Python:IndentationError: unexpected indent
  7. ASP.NET MVC 5 入门教程 (3) 路由route
  8. InnoDB的auto_increment指定值被重置问题
  9. org.apache.ibatis.reflection.ReflectionException: Error instantiating class with invalid types
  10. java统计报表日期工具类