【习题 8-9 1613】 K-Graph Oddity
2024-08-27 06:38:11
【链接】 我是链接,点我呀:)
【题意】
在这里输入题意
【题解】
感觉最大度数|1就是最多需要的个数了。
就贪心一下。
然后模拟染色的过程就可以了。
(贪心染色就可以了
(看看周围哪个颜色没有,就用它)
k在dfs之前忘记判断是不是奇数了。。。。
以及忘记清空g
【代码】
#include <bits/stdc++.h>
using namespace std;
const int N = 1e4;
int n,m,du[N+10],k,flag[N+10];
vector <int> g[N+10];
set<int>myset[N+10];
int ma;
void dfs(int x){
myset[x].clear();
for (auto y:g[x])
if (flag[y]!=0){
myset[x].insert(flag[y]);
}
for (int i = 1;i <= k;i++)
if (myset[x].find(i)==myset[x].end()){
flag[x] = i;
break;
}
for (auto y:g[x])
if (flag[y]==0)
dfs(y);
}
int main(){
#ifdef LOCAL_DEFINE
freopen("rush_in.txt", "r", stdin);
#endif
ios::sync_with_stdio(0),cin.tie(0);
while (cin >> n >> m){
for (int i = 1;i <= n;i++) {
g[i].clear();
du[i] = 0;
flag[i] = 0;
}
for (int i = 1;i <= m;i++){
int x,y;
cin >> x >> y;
g[x].push_back(y);
g[y].push_back(x);
du[x]++;du[y]++;
}
k = 0;
for (int i = 1;i <= n;i++)
k = max(k,du[i]);
if (!(k&1)) k++;
dfs(1);
cout <<k<<endl;
for (int i = 1;i <= n;i++) cout << flag[i]<<endl;
cout << endl;
}
return 0;
}
最新文章
- 背水一战 Windows 10 (12) - 绘图: Shape, Path
- php页面如何增加下载软件功能
- Lock同步锁--线程同步
- 股票投资组合-前进优化方法(Walk forward optimization)
- 性能测试一般过程与LR性能测试过程
- DP:Cow Bowling(POJ 3176)
- setInterval和setTimeout定时器
- Andriod中绘(画)图----Canvas的使用具体解释
- 用数据说话,外贸产品选择(中篇)-google趋势分析法
- Centos6.3不能使用yum install安装gcc编辑器解决办法
- jsp变量的使用规则
- [Python数据挖掘]第7章、航空公司客户价值分析
- canvas 填充图片
- tensorflow中tf.ConfigProto()用法解释
- 【一】java 虚拟机 监控示例 Eclipse Memory Analyser
- this、apply/call、bind、闭包、函数、变量复制
- word2013总是出现未响应卡一下如何解决?
- max值——单元测试
- C/C++ 父子进程之间的文件描述符问题
- 从数据池中捞取的存储过程控件使用完以后必须unprepare
热门文章
- [NOIP1999]进制位(搜索)
- POJ——T 3728 The merchant
- UVA 10515 - Powers Et Al.(数论)
- Hadoop的单节点集群详细启动步骤
- OpenSUSE Leap 42.3下通过Firefox Opera Chromium浏览器直接执行java应用程序(打开java jnlp文件)实现在服务器远程虚拟控制台完成远程管理的方法
- try{futureGirl}catch(Exception){";Kill All Trouble";}——echarts样式
- Reference Counting GC (Part one)
- 直接修改Android软件数据库来改变软件设置实例一则
- 【Henu ACM Round#14 B】Duff in Love
- RQNOJ PID496/[IOI1999]花店橱窗布置