当前位置: 首页 > news >正文

【学习笔记】POJ 3834 graph game

点这里

结论题😅 ,图一乐

结论:如果原图中存在两个边集不交的生成树,那么 Bob \text{Bob} Bob必胜;否则 Alice \text{Alice} Alice必胜

证明有点难😅

首先,考虑维护两颗 不存在红边 的生成树,如果 Alice \text{Alice} Alice断掉了其中一颗树上的一条边,将这个树分成两个连通块,那么 Bob \text{Bob} Bob一定可以在另一颗树上选择一条边变成蓝色,使得这个树再次联通,最终两个生成树都只由蓝边构成

其次,如果原图中不存在这样的两颗生成树,则考虑某次 Alice \text{Alice} Alice操作时, Bob \text{Bob} Bob胜利的条件:将所有蓝色的边 复制一遍,使得存在两个边集不交的生成树。假设存在某种策略,使得 Bob \text{Bob} Bob在某次操作后满足了这个条件,那么 Alice \text{Alice} Alice可以照搬 Bob \text{Bob} Bob的策略,使得某次操作后将红边复制一遍,使得存在两个边集不交的生成树。因此 Alice \text{Alice} Alice存在可以让红边构成一颗生成树的策略。又因为原图中不存在两个边集不交的生成树,因此 Bob \text{Bob} Bob无法胜利

有点绞

发现 ( 30 9 ) \binom{30}{9} (930)比较小,直接暴搜即可。

#include<cstdio>
#include<iostream>
#define ll long long
#define pb push_back
#define fi first
#define se second
#define db double
#define ull unsigned long long
#define inf 0x3f3f3f3f
using namespace std;
int n,m,fa[10],fa2[10],U[30],V[30],s[30];
int find(int x){return fa[x]==x?x:find(fa[x]);
}
int check(){for(int i=0;i<n;i++)fa2[i]=fa[i],fa[i]=i;int tot=0;for(int i=0;i<m;i++){if(s[i]==0){int x=find(U[i]),y=find(V[i]);if(x!=y)fa[x]=y,tot++;}}if(tot==n-1){return 1;}for(int i=0;i<n;i++)fa[i]=fa2[i];return 0;
}
int dfs(int x,int y){if(y==n-1)return check();for(int i=x;i<m;i++){int a=find(U[i]),b=find(V[i]);if(a==b)continue;fa[a]=b,s[i]=1;if(dfs(i+1,y+1))return 1;fa[a]=a,s[i]=0;}return 0;
}
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);while(cin>>n>>m){if(n==-1&&m==-1)break;for(int i=0;i<n;i++)fa[i]=i;for(int i=0;i<m;i++)cin>>U[i]>>V[i],s[i]=0;cout<<(dfs(0,0)?"YES":"NO")<<"\n";}
}
http://www.lryc.cn/news/175192.html

相关文章:

  • 无监督学习算法Kmeans
  • 区块链(4):区块链技术模型介绍
  • go语言 rune 类型
  • DS18B20温度传感器
  • LeetCode322. 零钱兑换
  • AUTOSAR扫盲贴--不是黑神话【基本概念和方法论】
  • python抠图(去水印)开源库lama-cleaner入门应用实践
  • Nginx可视化管理工具结合cpolar实现远程访问内网服务
  • CCC数字钥匙设计【BLE】 --建立安全测距
  • Ubuntu22.04 Opencv4.5.1 CPU和GPU编译攻略,Opencv CPU和GPU编译保姆教程 亲自测试。
  • 常识判断 --- 党史
  • Rust 基础再理解
  • Opencv cuda版本在ubuntu22.04中安装办法,解决Could NOT find CUDNN的办法
  • 全网首发YOLOv8暴力涨点:Gold-YOLO,遥遥领先,超越所有YOLO | 华为诺亚NeurIPS23
  • BD就业复习第四天
  • 数据结构 | 树
  • Android11 适配
  • UML基础与应用之对象图
  • 英码科技精彩亮相火爆的IOTE 2023,多面赋能AIoT产业发展!
  • 400G QSFP-DD FR4 与 400G QSFP-DD FR8光模块:哪个更适合您的网络需求?
  • 【Android】Kotlin 中的 apply、let、with、also、run 到底有啥区别?
  • 设计模式——职责链模式
  • 小程序自定义tabbar,中间凸起
  • 数据结构-顺序栈C++示例
  • 若依cloud -【 100 ~ 103 】
  • 可转债实战与案例分析——成功的和失败的可转债投资案例、教训与经验分享
  • @NotNull注解不生效,全局异常处理
  • 【办公自动化】使用Python一键往Word文档的表格中填写数据(文末送书)
  • OpenHarmony应用核心技术理念与需求机遇简析
  • 让Pegasus天马座开发板实现超声波测距