Elegant Construction HDU-5813 构造

- 题意

    给出我们从1-n城市的点能直接(或间接)到达的城市的数量作为这个点的权值 让我们判断并构造一个单向图 使得这个图完全契合给出的数据 special judge 任意一组结果就可以题目中给出 图中无环无回路

- 分析

刚看到根据联通数目构造图 哇 这怎么做 好复杂啊!这该如何构造??
其实想一下就可以发现 题目中说是一个无环图 也就是说 

任何一个有向无环图中必定至少存在一个入度为0的顶点,至少存在一个出度为0的顶点,否则图中必存在环。有向无环图对于构造一个任务必须发生在另一个任务之前的这种依赖模型特别有效。有向无环图的另一个应用是规划项目,例如建造房屋时,框架的设计必须在盖屋顶之前。

否则 如果无环图中的每一个点都有出度的话 这与无环的性质矛盾
我们说 一个无环图就是一个可以被拓补排序的图 也就说 这个图 一定可以被拓扑排序
所以我们发现
低权值的点 不会连向高权值的点 因为一个低权值的点 如果连向一个比自己权值高的点就会产生矛盾 所以当我们把低权值的点处理完后 把每一层低权值的点处理完后 相应的高一层的点就相当于单个点 就像拓扑排序 因为高一层的点来自低一层的点 所以我们从低到高处理 每处理完一层点比其只高一层的点 就相当于单个点 就像是拓扑排序的步骤
每排好一个点 就把这个点的出度全部删除 这里同理
每选完一个点 就把这个点 直接到达的点看成 无入度点 所以就可以一个个选了 
生序排序 从低到高处理 相当于反向拓扑排序的步骤 如果这个处理的这个点 找不到足够的点 可以连
就输出NO 
证明一个有向图是有向无环图方法: 拓扑排序方法

code

#include<bits/stdc++.h>
using namespace std;
vector<int>v[1010];
struct node{int o,val;
}a[1010];
bool cmp(node aa,node bb){return aa.val<bb.val;
}
int main()
{int p,t,n;scanf("%d",&t);for( p=1;p<=t;p++){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i].val);a[i].o = i;}printf("Case #%d: ",p);sort(a+1,a+1+n,cmp);if(a[1].val!=0){puts("No");continue;}int i,c=0,j;bool f=0;for(i=1;i<=n;i++){if(a[i].val==0)continue;for(j=1;j<i&&j<=a[i].val;j++){v[a[i].o].push_back(a[j].o);c++;}if(v[a[i].o].size()!=a[i].val){f=1;break;}}if(f)puts("No");else{puts("Yes");printf("%d\n",c);for(int i=1;i<=n;i++)for(int j=0;j<v[i].size();j++)printf("%d %d\n",i,v[i][j]);}for(int i=1;i<=n;i++)v[i].clear();}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【解决问题】IDEA配置Tomcat添加Deployment时没有Artifact

下面这里别忘了把整个项目也拉到左边的output-root&#xff08;拉完之后会有个WEB-INF&#xff09;

java将数据生成csv文件

1&#xff0c;httpRequest接口触发进程[或者可以换成其他方式触发] /** * 出入库生成CSV文件 * param req * param params * return */RequestMapping(value "explanCsvFileToOrder")ResponseMessage explanCsvFileToOrder(HttpServletRequest req, RequestParam Ma…

像素间的关系

像素间的关系 像素空间的关系 图像由像素组成&#xff0c;像素在图像空间上按规 律排列&#xff0c;相互之间有一定的联系。 像素间联系 像素的邻域&#xff0d;邻接关系 •4邻域—— N 4( p )&#xff1a; p ( x , y ): ( x 1, y ); ( x -1, y) ( x , y 1); ( x , y -1) •…

Spring Cloud面试题

为什么需要学习Spring Cloud 什么是Spring Cloud 设计目标与优缺点 设计目标 优缺点 Spring Cloud发展前景 整体架构 主要项目 Spring Cloud Config Spring Cloud Netflix Spring Cloud Bus Spring Cloud Consul Spring Cloud Security Spring Cloud Sleuth Spring Cloud Stre…

HDU 5787 wolf Number 数位dp

题意 题目就是说让我们在l到r的数字中求得有多少个连续k为不相同的数 1≤L≤R≤1e18 2≤K≤5 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)分析 直接枚举必然超时 考虑数位dp 由于k最大到5 所以我们可以记录前四位的大小 通过一个c…

【发现问题】IDEA设置全局新创建文件默认换行符

今晚读《阿里Java开发手册》的代码格式部分中&#xff0c;第十条强制规约引起了我的注意。说的是&#xff0c; IDE中文件的换行符使用UNIX格式&#xff0c;不要使用Windows格式。 于是上网搜索为何如此&#xff0c;得到以下答案&#xff1a; 在开发中&#xff0c;有可能会遇到某…

图像文件类型

图像的分类 按照图像的动态特性&#xff1a; •静止图像和运动图像 按照图像的色彩&#xff1a; •灰度图像和彩色图像 按照图像的维数&#xff1a; •二维图像&#xff0c;三维图像和多维图像。 位图是通过许多像素点表示一幅图像&#xff0c;每个 像素具有颜色属性和位置…

[Leedcode][JAVA][第739题][每日温度][暴力][单调栈]

【问题描述】[中等] 根据每日 气温 列表&#xff0c;请重新生成一个列表&#xff0c;对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高&#xff0c;请在该位置用 0 来代替。例如&#xff0c;给定一个列表 temperatures [73, 74, 75, 71, 69, 7…

MySQL学习笔记2

目录MySQL函数常用函数聚合函数&#xff08;常用&#xff09;数据库级别MD5加密&#xff08;拓展&#xff09;事务什么是事务索引索引的分类测试索引索引原则权限管理和备份用户管理MySQL备份规范数据库设计三大范式MySQL函数 常用函数 -- 数学运算SELECT ABS(-8) -- 绝对值 …

数位dp 模板

板子 ?? DP(pos,状态变量...,限制布尔){if(pos0)return 1;//一般每次执行到这里时的数是要算入总结果的 不一定是1 根据题目确定if(!limit&&dp[对应状态]!-1)return dp[对应状态]; //记忆化搜索int up limit?d[pos]:9;//表示如果前面一位有限制 就说明这是擦着区间…

拓展资源

1&#xff0e;人类的视觉感知系统 眼睛中的光接收器主要是视觉细胞&#xff0c;它包括锥状体和杆状体。中央凹&#xff08;或称中心窝&#xff09;部 分特别薄&#xff0c;这部分没有杆状体&#xff0c;只密集地分布锥状体。它具有辨别光波波长的能力&#xff0c;因此&#xff…

HTML5前端开发学习路线建议,学习前端的必备知识点

Web前端开发工程师是一个很新的职业&#xff0c;是从事Web前端开发工作的工程师。主要进行网站开发&#xff0c;优化&#xff0c;完善的工作。网页制作是Web 1.0时代的产物&#xff0c;那时网站的主要内容都是静态的&#xff0c;用户使用网站的行为也以浏览为主。 一位好的Web前…

[Leedcode][JAVA][第990题][等式方程的可满足性][并查集]

【问题描述】[中等] 给定一个由表示变量之间关系的字符串方程组成的数组&#xff0c;每个字符串方程 equations[i] 的长度为 4&#xff0c;并采用两种不同的形式之一&#xff1a;"ab" 或 "a!b"。在这里&#xff0c;a 和 b 是小写字母&#xff08;不一定不…

图像基本运算概述型

图像基本运算概述型 图像基本运算的概述(Introduction) 图像基本运算的分类 点运算 点运算是指对一幅图像中每个像素点的灰度值进行计算 的方法。 代数运算、逻辑运算 代数运算或逻辑运算是指将两幅或多幅图像通过对应像 素之间的加、减、乘、除运算或逻辑与、或、非运算得 到…

HDU odd-even number 数位dp

题意 在l到r区间内求有多少个符合条件“当前数中所有连续的奇数长度是偶数 所有连续的偶数长度是奇数”的个数分析 典型的数位dp问题 我们设置dp数组时可以根据 dp[pos][pre][len]设定 表示在pos长度下 前面是pre并且长度是len的个数共有多少这个方法很巧妙 根据这个结构 我…

web

1.添加tomcat 新建动态web 在WebContent下新建index.jsp Windows-->preferences-->Server-->Runtimes Environments 稍后tomcat启动成功&#xff0c;但访问tomcat首页报404 解决方法&#xff1a;将server里的项目removeAll&#xff0c;启动server&#xff0c;双击修改…

[剑指offer][JAVA]面试题第[20]题[表示数值的字符串][状态机]

【问题描述】[中等] 请实现一个函数用来判断字符串是否表示数值&#xff08;包括整数和小数&#xff09;。例如&#xff0c;字符串"100"、"5e2"、"-123"、"3.1416"、"0123"都表示数值&#xff0c;但"12e"、"…

点运算

线性点运算 线性点运算的应用 1&#xff09;如果a>1&#xff0c;输出图像的对比度增大&#xff08;灰度扩展&#xff09; 2&#xff09;如果0<a<1,输出图像的对比度减小&#xff08;灰度压缩&#xff09; 3&#xff09;如果a为负值&#xff0c;暗区域将变亮&#xff…

使用requests模块简单获取数据

一、使用ruquests的基本步骤&#xff1a; 指定url发起请求获取响应对象中的数据持久化存储1 #1 2 url https://www.sogou.com/ 3 #2. 4 response requests.get(urlurl) 5 #3. 6 page_text response.text 7 #4. 8 with open(./sogou.html,w,encodingutf-8) as fp: 9 fp.w…

代数运算

代数运算 概念 代数运算是指两幅或多幅输入图像之间进行点对点的加、 减、乘、除运算得到输出图像的过程。如果记输入图像 为A(x,y)和B(x,y)&#xff0c;输出图像为C(x,y)&#xff0c;则有如下四种形 式&#xff1a; 逻辑运算 在进行图像理解与分析领域比较有用。运用这种方法…