博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Labeling Balls
阅读量:5286 次
发布时间:2019-06-14

本文共 1121 字,大约阅读时间需要 3 分钟。

poj3687:

题意:有N个重量1到N的点,把这N个点涂色,要求在一定的约束下颜色a必须比颜色b要轻,如果有多种选择则让重量最小的对应编号1,然后剩下中重量最小的给编号2,一次类推

题解:逆向建图,这样取出来的就是最后选择的点,并标上最大重量,把邻接点入度为0的加入到优先队列中,然后取编号最大的,为的是使得留着编号最小的给重量最大的

1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 const int maxn = 202; 7 int edge[maxn][maxn]; 8 int cnt[maxn]; 9 int ans[maxn];10 int tot;11 int toporder(int n)12 {13 priority_queue
q;14 int i,j,k;15 for(i=1;i<=n;i++)16 if(cnt[i] == 0) q.push(i);17 for(i=1;i<=n;i++)18 if(q.empty()) return 0;19 else20 {21 j = q.top();q.pop();22 ans[j] = tot--;23 for(k=1;k<=n;k++)24 if(edge[j][k] && (--cnt[k]) == 0) q.push(k);25 }26 return 1;27 }28 int main ()29 {30 int n,m,t,i,u,v;31 scanf("%d",&t);32 while(t--)33 {34 scanf("%d%d",&n,&m);35 memset(edge,0,sizeof(edge));36 memset(cnt,0,sizeof(cnt));37 tot = n;38 for(i=0;i
View Code

 

转载于:https://www.cnblogs.com/chujian123/p/3365237.html

你可能感兴趣的文章
微信上传素材返回 '{"errcode":41005,"errmsg":"media data missing"}',php5.6返回
查看>>
div或者p标签单行和多行超出显示省略号
查看>>
Elasticsearch 滚动重启 必读
查看>>
Hadoop基本概念
查看>>
java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹
查看>>
浅说 apache setenvif_module模块
查看>>
MySQL--数据插入
查看>>
重新学习python系列(二)? WTF?
查看>>
shell脚本统计文件中单词的个数
查看>>
SPCE061A学习笔记
查看>>
sql 函数
查看>>
hdu 2807 The Shortest Path 矩阵
查看>>
熟悉项目需求,要知道产品增删修改了哪些内容,才会更快更准确的在该项目入手。...
查看>>
JavaScript 变量
查看>>
java实用类
查看>>
smarty模板自定义变量
查看>>
研究称90%的癌症由非健康生活习惯导致
查看>>
命令行启动Win7系统操作部分功能
查看>>
排序sort (一)
查看>>
Teamcenter10 step-by-step installation in Linux env-Oracle Server Patch
查看>>