【问题描述】

某国有N个议员,大佬XDD要从中选出来一部分一起喝茶谈一些事情。某两个议员之间可能存在矛盾,大佬XDD不希望选出来的这些议员之间有任何矛盾关系,以至于喝喝茶的场面搞得很尴尬。

已知这些议员之间存在M对矛盾关系,你能否帮助大佬XDD计算出他最多可以选出多少个议员来喝茶谈事情?

如果聪明的你把议员看成点,把矛盾关系看成无向边,那么题目中的数据保证M对矛盾所构成的图中不存在含有超过3个点的环。(图1符合要求,图2则不符合)

【输入数据】

输入文件的第一行是用空格隔开的两个整数N和M,表示一共有N个议员,这些议员之间有M对矛盾关系。接下来的M行,每行将有一对整数a和b(用空格隔开),表示议员a与议员b有矛盾。输入数据保证不含重边和自环。(议员的编号都是从1开始的)

【输出数据】

输出一行,包含一个整数,即大佬XDD最多可以选出多少议员来喝茶谈事情。

【输入输出样例】

secret.in

5 6

1 2

3 2

1 3

3 5

3 4

4 5

secret.out

2

【样例说明】

某国有6个议员,矛盾关系中1 - 2 - 3组成一个环,3 - 4 - 5组成一个环,因此只能在这两个环中分别选一个议员,并且不能选择3号议员。

【数据规模与约定】

对于20%的数据,1 ≤ N ≤ 20

对于40%的数据,1 ≤ N ≤ 50

对于100%的数据,1 ≤ N ≤ 200

输入数据保证合法。


【分析】
丫就是个树形dp…只不过有可能一个父节点的两个子节点相互矛盾…特判一下就好了
dp[u][0]代表不选u时的最多人数
dp[u][1]代表选u时的最多人数
注意一下…数据是森林…要不然会被坑掉20分


【代码】

#include<cstdio>
#include<iostream>
#include<cstring>
#define M(a) memset(a,0,sizeof a)
#define fo(i,j,k) for(i=j;i<=k;i++)
using namespace std;
const int mxn=205;
int dp[mxn][2],dep[mxn],cun[mxn];   //1选 or 0不选
int n,m,cnt;
bool con[mxn][mxn];
inline void dfs(int u,int fa)
{int i,j,v,cnt=0;int tmp[mxn];bool vis[mxn];memset(vis,0,sizeof vis);fo(v,1,n) if(v!=fa && con[u][v] && !dep[v]) dep[v]=dep[u]+1;fo(v,1,n) if(v!=fa && con[u][v] && dep[v]==dep[u]+1){dep[v]=dep[u]+1;tmp[++cnt]=v;dfs(v,u);}fo(i,1,cnt){fo(j,i+1,cnt){int t1=tmp[i],t2=tmp[j];if(con[t1][t2]){dp[u][0]+=max(dp[t1][0]+dp[t2][0],max(dp[t1][1]+dp[t2][0],dp[t1][0]+dp[t2][1]));vis[t1]=vis[t2]=1;break;}}}fo(i,1,cnt){v=tmp[i];dp[u][1]+=dp[v][0];if(vis[v]) continue;dp[u][0]+=max(dp[v][0],dp[v][1]);}dp[u][1]++;
}
int main()
{
//  freopen("input.txt","r",stdin);
//  freopen("output.txt","w",stdout);int i,j,u,v,ans=0;scanf("%d%d",&n,&m);while(m--){scanf("%d%d",&u,&v);con[u][v]=con[v][u]=1;}fo(i,1,n)if(!dp[i][1]){dep[i]=1;dfs(i,0);cun[++cnt]=i;}fo(i,1,cnt) ans+=max(dp[cun[i]][0],dp[cun[i]][1]);printf("%d\n",ans);return 0;
}

晋城一中oj 议员秘密相关推荐

  1. 晋城一中oj 神奇的序列

    1.神奇的序列 (sum.pas/c/cpp) [问题描述] 开门见山,直截了当!如果一个以0开头的整数序列中,任意两个相邻的项相差为±1,则我们说这个整数序列是"一序列".即如果 ...

  2. 一中OJ #3514 礼物 | 暴搜 + 剪枝 | 解题报告

    一中OJ | #3514 礼物 时限 1000MS/Case 内存 128MB/Case 题目描述 你有一个体积为N的箱子和两种数量无限的宝物.宝物1的体积为S1,价值为V1,宝物2的体积为S2,价值 ...

  3. 2021阳城一中高考成绩查询,山西高考分数线,晋城一中、阳城一中高考捷报这里都有...

    原标题:山西高考分数线,晋城一中.阳城一中高考捷报这里都有 今天凌晨3时 2019年山西高考成绩查分通道开启 2019年山西高考分数线公布! 文史类 第一批为 542分 第二批为 481分 理工类 第 ...

  4. 一中OJ #1438 航线设计 | LIS 序列DP | 解题报告

    一中OJ | #1438 航线设计 时限 1000MS/Case 内存 64MB/Case 题目描述 有一个国家被一条河划分为南北两部分,在南岸和北岸总共有N对城镇,每一城镇在对岸都有唯一的友好城镇. ...

  5. 一中OJ #3509 七的倍数 [USACO Jan16,洛谷P3131] | 同余前缀和 | 解题报告

    一中OJ | #3509 七的倍数 [USACO Jan16 Silver , Subsequences Summing to Sevens] 时限 1000MS/Case 内存 128MB/Case ...

  6. 一中OJ #1151 [USACO Jan08] 化妆晚会 | 排序与查找 | 解题报告

    一中OJ | #1151 化妆晚会 时限 1000MS/Case 内存 64MB/Case 题目描述 万圣节又到了!FJ打算带他的奶牛去参加一个化装晚会,但是FJ只做了一套能容下两头总长不超过 S 的 ...

  7. 2019晋城一中开放日

    总算到开放日了啊 一直很期待呢 早上打完针以后就直接去了晋一 (参观的人好多啊) 到了编程社以后,我以为今年的帮忙是要打气球之类的. 然而... 然而zym大佬给了我一沓明信片. 然后我就弱小可怜又无 ...

  8. 2021年晋城二中高考成绩查询,太骄傲 | 晋城八大高中高考成绩全记录!请为晋城学子点赞!...

    原标题:太骄傲 | 晋城八大高中高考成绩全记录!请为晋城学子点赞! 6月24日零点, 山西高考分数可查询! 晋城八大高中都发了喜报, 一起看下吧! 晋城一中 晋城一中2018年高考高分段统计 晋城二中 ...

  9. 2021阳城一中高考成绩查询,阳城一中高考北大清华录取名单曝光,原来是这些人!...

    原标题:阳城一中高考北大清华录取名单曝光,原来是这些人! 2017年高考,清华北大在山西录取工作圆满结束.据了解,山西省清北录取20人以上的高中有2所,5-8人的有3所,录取4人的学校有4所,录取3人 ...

最新文章

  1. php 小数末尾进1,PHP处理浮点数进一、去尾(不进行四舍五入) | 剑花烟雨江南...
  2. 没有对“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files”的写访问权限...
  3. python去除中文停用词_删除停止词Python
  4. vscode运行conda出现 “无法加载文件C:\Users\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本” 的错误
  5. linux下模仿用户左键,linux 鼠标左右键互换实现代码
  6. 怎样推断两个日期在一周内
  7. 95-070-040-源码-源码调试-FLINK源代码调试方式
  8. java中jsp时间插件_日期插件 - WEB源码|JSP源码/Java|源代码 - 源码中国
  9. Java咖啡馆(8)——大话面向对象(下)
  10. Luogu3431 [POI2005]AUT-The Bus
  11. 樽海鞘群算法原理详解
  12. 原子结构示意图全部_所有原子结构示意图 (1)
  13. linux下添加三菱触摸屏usb驱动,[转载]三菱触摸屏GT Works3和PLC GX Works2编程软件下载...
  14. 文章最重要的并不是原创,而是伪原创
  15. 都市美女们的日常穿搭,女孩子春天这样穿才最时髦
  16. 安卓系统怎么连接服务器数据库,安卓服务器连接数据库的方法
  17. labview如何加载库_LabVIEW如何方便地调用DLL文件
  18. (PTA)数据结构(作业)11、树和图
  19. 赠书赠券:《大话计算机》
  20. 美团饿了么外卖返利小程序公众号搭建外卖返利分销系统代cps源码

热门文章

  1. Google是如何通过拆股增强控制权的?
  2. 揭露液晶电视六大骗术
  3. 最快的排序方法-----快速排序
  4. 点击高德地图标注没法弹窗_巴彦淖尔果农注意啦!林草局喊你上高德地图标注位置哦...
  5. 开启安全测试评估赛道,永信至诚发布“数字风洞”产品体系
  6. 面试学习+刷题笔记分享-屌丝的逆袭之路,2年5个月13天,从外包到拿下阿里offer
  7. VMware虚拟机使用无线网络
  8. flutter之包管理
  9. 【笔试面试】HR面的面试技巧
  10. 菊风云 | 视频会议在银行业的发展 - 机遇与挑战并存