题目链接:https://codeforces.com/contest/1230/problem/C

题目大意:21枚多米诺牌,给你一个图,将多米诺牌放到图的边上,由同一个点发出的所有边,边上多米诺牌对应该点的一侧相同。

such as:

题解:暴力枚举,即先给每个点一个值,然后判断在这种情况下可以放置多少个多米诺牌,枚举的时候可以dfs递归

#include<bits/stdc++.h>
using namespace std;
const int N=;
int n,m;
int d[N];
int l[N],r[N];
int ans=;
bool mark[N][N];
void check(){
int sum=;
memset(mark,,sizeof(mark));
for(int i=;i<=m;i++){
int a=d[l[i]];
int b=d[r[i]];
if(a>b) swap(a,b); if(!mark[a][b]){//判断a,b这种牌有没有被用过;
mark[a][b]=;
sum++;
}
}
ans=max(ans,sum);
}
void dfs(int x){
if(x==n+){//如果所有的点都被赋值,那就判断在这种情况下可以多少放置多少个;
check();
return ;
}
for(int i=;i<=;i++){
d[x]=i;
dfs(x+);
}
}
int main(){
cin>>n>>m;
for(int i=;i<=m;i++){
scanf("%d%d",&l[i],&r[i]); //指的是从l到r有一条边
}
dfs();
cout<<ans<<endl;
return ;
}

最新文章

  1. ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点
  2. Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计
  3. PHP干货技巧文,一些PHP性能的优化
  4. Github注册过程以及对管理软件的了解
  5. Windows 10 L2TP 809错误
  6. 深入理解JS的delete
  7. for循环进阶
  8. SPCOMM 接收数据不完整!该如何解决
  9. vim命令---存阅
  10. 【LeetCode练习题】Unique Paths
  11. php五种常用的设计模式
  12. 最小k个数
  13. nodejs开发辅助工具nodemon
  14. Java基础语法入门01
  15. dlo,学习清单
  16. 【转】用ffmpeg转多音轨的mkv文件
  17. Linux - 日志文件简介
  18. AngularJS快速教程
  19. VGA Signal Timing
  20. day10&lt;面向对象+&gt;

热门文章

  1. Servlet(四)----HTTP、Response、servletContent
  2. Java ServerSocket详解
  3. Contest 154
  4. Vmware15.5安装与许可教程
  5. Faiss向量相似性搜索
  6. 为何给CheckBox设置了checked属性还是没有勾选,行内样式都显示了checked
  7. CocoaPods 安装卸载
  8. 【swagger】C# 中 swagger 的使用及避坑
  9. Html,css构建一个对话框,练习201911281028
  10. 1127: 【入门】A类多?B类多?