2017中国大学生程序设计竞赛 - 网络选拔赛 [1003 - Friend-Grapht] 图论
题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1003&cid=779
题目大意:给一个团队的关系图,问这个团队是不是好团队,判定依据是这个团队没有三个人互相认识,也没有三个人互相不认识,则为好团队。
关键思想:根据Ramsey定理,当n>=6时,一定存在“3个人互相认识或3个人互相不认识”。故当n>=6时,只需输出"Bad Team",当n<6时,对原图及其补图DFS暴力就行了,如果四层回不到自己,就说明自己不在小圈子里。
代码如下:
#include <iostream> #include <cstdio> #include <string.h> using namespace std;int Relation[6][6]; bool vis[6]; bool flag; int T,n;void DFS(int start,int now,int cnt){//起点,当前点,环的长度 if(!flag)return; if(cnt==4&&now==start){flag=false;return;}for(int i=0;i<n;i++){if(Relation[now][i]&&!vis[i]){vis[i]=true;DFS(start,i,cnt+1);vis[i]=false;} }return; }int main(){scanf("%d",&T);while(T--){scanf("%d",&n);for(int i=0;i<n;i++){for(int j=i+1;j<n;j++){scanf("%d",&Relation[i][j]);Relation[j][i]=Relation[i][j]; }}if(n>=6){//Ramsey定理 cout<<"Bad Team!"<<endl;continue;}flag=true;memset(vis,0,sizeof(vis));for(int i=0;i<n;i++){if(flag) DFS(i,i,1);//从i开始,环长度为1 }if(flag)cout<<"Great Team!"<<endl;else cout<<"Bad Team!"<<endl;}return 0; }
循环暴力也能过
#include <cstdio> #include <iostream> #include <algorithm> #include <string.h> #include <cmath> using namespace std; int T, n; bool Relation[3010][3010];int main() {scanf("%d", &T);while (T--) {memset(Relation,0,sizeof(Relation));scanf("%d", &n);for (int i=0;i<n;i++) {for (int j=i+1;j<n;j++) {scanf("%d", &Relation[i][j]);}}bool flag = true;for (int i=0;i<n;i++) {for (int j=i+1;j<=n;j++) {for (int k=j+1;k<=n;k++) {if (!Relation[i][j] && !Relation[i][k] && !Relation[j][k]) {flag=false;break;}if (Relation[i][j] && Relation[i][k] && Relation[j][k]) {flag=false;break;}}if(flag)break; }if(flag)break;}if (flag) printf("Great Team!\n");else printf("Bad Team!\n");}return 0; }
转载于:https://www.cnblogs.com/G-M-WuJieMatrix/p/7397793.html
2017中国大学生程序设计竞赛 - 网络选拔赛 [1003 - Friend-Grapht] 图论相关推荐
- 2017中国大学生程序设计竞赛 - 网络选拔赛 [1005 - CaoHaha's staff] 贪心
题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1005&cid=779 题目大意:在一个二维坐标网格里画线,可 ...
- 2018中国大学生程序设计竞赛-网络选拔赛题解
以下所有AC题解程序来自"仙客传奇"团队. A. Buy and Resell AC的C++语言程序: #include<iostream> #include<c ...
- Buy and Resell 2018中国大学生程序设计竞赛 - 网络选拔赛
题目 题意: n个宝石,宝石的买入或卖出价格固定,一天只能到一个珠宝商店(从左到右),问最大利润是多少?在保证最大利润的同时最少交换次数是多少? 题解: 题目有两问:一个是求利润,一个是求次数 利润就 ...
- 2018中国大学生程序设计竞赛 – 网络选拔赛 1001 Buy and Resell [模拟]
1001 Buy and Resell 题目:有1-n个货物,可以在某个点buy,然后在后面的点resell,可以同时买多个,问最大的利润和最小的交易次数. 题解:模拟运算,前 i 天都是可以买的, ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛
传送门 A.HDU6438 Buy and Resell 题意 给你N天N个价格,每天都可以从1.买入一个,2.卖出一个,3.什么都不做,求最高获利 低买高卖问题,这题与其他的差距就是要在满足获利最多 ...
- 挑战程序设计竞赛_我系首次参加第六届中国大学生程序设计竞赛网络预选赛
点击上方蓝字关注 「龙外信息工程系」 讲述有温度的故事 传递有态度的思想 2020年9月20日12时至17时,第六届中国大学生程序设计竞赛网络赛预选赛在杭州电子科技大学OJ成功举办,黑龙江外国 ...
- 2017中国大学生程序设计竞赛-哈尔滨站(2/13)
F.Permutation 题意 给一个n,构造一个1~n的序列使得 pi ≡ 0 ( mod |pi−pi−2| ) for i=3...n 分析 直接暴力让p[i]- p[i-2]=1,先安排奇 ...
- 2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛 1005 Lunch (杭电 6892)
2020中国大学生程序设计竞赛(CCPC) - 网络选拔赛 1005 Lunch (杭电 6892)(类尼姆博弈) #include<cstdio> #include<iostrea ...
- 第五届CCPC中国大学生程序设计竞赛落幕 清华夺冠! 南大、浙大分获二、三名
经过11 月 16 - 17日两日激烈的比赛,第五届中国大学生程序设计竞赛( CCPC2019)总决赛于 17 日落下帷幕.清华大学"三个顶俩"战队从全国119支参赛队伍中脱颖而出 ...
最新文章
- MySQL性能与磁盘读写的关系及优化策略
- python浪漫表白代码
- python代码大全下载-大神整理的python资源大全
- 阿里开源的那个牛X的问题排查工具——Arthas,推出IDEA插件了!
- java 鼠标拖动图形_java怎么实现鼠标在桌面拖动过程中 画 矩形的 功能?
- 死磕java并发cas_死磕Java——CAS
- js随机生成4位验证码
- jQuery中$(document).ready()和window.onload的区别?
- C++自动类型推导 : auto 与 decltype 用法
- 开发板屏幕截图-适用于本公司海思和智源平台
- php ajax mysql 分页查询_PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
- xtrabackup备份还原
- typeof的用法 typeof的返回值是一个字符串 返回的字符串类别
- php mysql orm_PHP基于ORM操作MySQL数据库 - strtolower
- Node.js最新最详细安装教程(2020)
- keybindings.json
- python抽样不同花色纸牌_Python 数据模型 一摞Python风格的纸牌
- python 取整法(进一取值)
- 读《了不起的盖兹比》于海生译版 有感
- Mybatis配置Mapper踩过的坑