HDU 6301 Distinct Values
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6301
多校contest1
题目大意是有一个长度为N的数组,给出M个"事实",每个事实指明一段区间内数字各异,求最后字典序最小的数组。
贪心+构造,给所有"事实"按 边界(左边界优先)排序,然后扫一遍"事实",用一个队列保证用以构造的所有数字最小且区间内各异。
- #include <bits/stdc++.h>
- using namespace std;
- #define fst first
- #define scd second
- typedef pair<int ,int > pii;
- vector< pii > facts;
- queue< int > num;
- bool inq[+];
- int ans[+];
- int main(){
- int Test;
- scanf("%d",&Test);
- while(Test--){
- int N,M;
- scanf("%d%d",&N,&M);
- memset(inq,false,sizeof(inq));
- while(!num.empty()) num.pop();
- facts.clear();
- for(int i=;i<=N;++i) ans[i]=;
- for(int i=;i<M;++i){
- pii tmp;
- scanf("%d%d",&tmp.fst,&tmp.scd);
- if(tmp.fst!=tmp.scd) facts.push_back(tmp);
- }
- sort(facts.begin(),facts.end());
- int lastr=-,lastl=-;
- for(int i=;i<facts.size();++i){
- int l=facts[i].fst,r=facts[i].scd;
- if(r<=lastr) continue;
- if(l>lastr){
- while(!num.empty()) {
- inq[num.front()]=false;
- num.pop();
- }
- int cnt=;
- for(int i=l;i<=r;++i){
- int flag=;
- while(!flag){
- if(!inq[cnt]){
- inq[cnt]=true;
- num.push(cnt);
- ans[i]=cnt;
- flag=;
- }
- cnt++;
- }
- }
- lastr=r;
- lastl=l;
- continue;
- }
- if(l<=lastr){
- for(int i=;i<l-lastl;++i) {
- inq[num.front()]=false;
- num.pop();
- }
- int cnt=;
- for(int i=lastr+;i<=r;++i){
- int flag=;
- while(!flag){
- if(!inq[cnt]){
- inq[cnt]=true;
- num.push(cnt);
- ans[i]=cnt;
- flag=;
- }
- cnt++;
- }
- }
- lastl=l;
- lastr=r;
- continue;
- }
- }
- for(int i=;i<=N;++i) printf("%d%c",ans[i],i==N?'\n':' ');
- }
- return ;
- }
HDU 6301 Distinct Values的更多相关文章
- hdu 6301 Distinct Values (思维+set)
hdu 6301 Distinct Values 题目传送门 题意: 给你m个区间,让你求出一个长度为n的区间且满足在这些区间的数不重复, 并且要求字典序最小 思路: 如果我们已经求出这个序列了,你会 ...
- hdu 6301 Distinct Values (2018 Multi-University Training Contest 1 1004)
Distinct Values Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- hdu 6301 Distinct Values (贪心)
Distinct Values Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- hdu 6301 Distinct Values(贪心)题解
题意:长为n的串,给你m个区间,这些区间内元素不重复,问这样的串字典序最小为? 思路:用set保存当前能插入的元素,这样就能直接插入最小元素了.对操作按l排序,因为排过的不用排,所以两个指针L,R是一 ...
- hdu 6301 Distinct Values (双指针,水题)
大意: 给定m个区间, 求构造一个长n且字典序最小的序列, 使得每个区间内的数各不相同 求出每个位置为左端点时向右延伸最大距离, 然后双指针, 每次从set中取最小 #include <iost ...
- HDU 6301.Distinct Values-贪心、构造字典序最小的数列 (2018 Multi-University Training Contest 1 1004)
HDU6301.Distinct Values 这个题就是给你区间要求区间内的数都不相同,然后要求是字典序最小,直接贪心走一遍,但是自己写的时候,思路没有错,初始化写挫了... 将区间按左端点小的排序 ...
- 2018 Multi-University Training Contest 1 Distinct Values 【贪心 + set】
任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6301 Distinct Values Time Limit: 4000/2000 MS (Java/Ot ...
- hdu多校1004 Distinct Values
Distinct Values Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): ...
- HDU 多校对抗赛 D Distinct Values
Distinct Values Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
随机推荐
- 《Linux内核原理与分析》第四周作业
课本:第3章 MenuOS的构造 内容总结 计算机的"三大法宝" 存储程序计算机 函数调用堆栈 中断 操作系统的"两把宝剑" 中断上下文切换:保存现场和恢复现场 ...
- 百度地图 JavaScript API
最近有点懒 项目结尾了 完了好长时间 没有去总结项目中的问题 想了下还是写写吧 这是一个关于百度地图的 网页展示 <!DOCTYPE html><html><head ...
- LeetCode - Maximum Frequency Stack
Implement FreqStack, a class which simulates the operation of a stack-like data structure. FreqStack ...
- 笔记本使用control线连接交换机
要求: 1.一台笔记本 2.一条usb转rj45串口线 (一端是usb口一端是网口) 连接步骤: usb口插入笔记本,网口插入交换机控制口(交换机上面一般会有标注) 直连步骤: 首先查看是哪个com口 ...
- Python脚本模拟僵尸进程与孤儿进程
最近一台机器的systemd内存高达30%多,一直不变,后来排查是僵尸进程,什么是僵尸进程呢,只能google,百度等先了解,然后自己总结了一下,虽然这是基础的东西,但是对于我来说就如新大陆一样.花了 ...
- exec 与文件描述符
参考http://blog.csdn.net/baoendemao/article/details/51638746 1:用法 exec 3<2.txt 以只读方式打开2.txt, ...
- socket资源
http://www.360doc.com/content/13/1231/16/14919052_341525862.shtml Linux下基于socket多线程并发通信的实现 https://w ...
- VUE打包上线优化
1.将vue vue-router vuex 尽量使用CDN externals: { 'vue':'Vue', 'vue-router':'VueRouter', 'vuex':'Vuex', 'a ...
- aspose.cells 插入图片
,,"d:\\1.jpg"); Aspose.Cells.Drawing.Picture pic = worksheet.Pictures[iIndex]; pic.Placeme ...
- 涂抹mysql笔记-数据导出导入
数据导出导入<>利用CSV存储引擎加载数据:CSV存储引擎基于CSV格式文件存储数据,CSV格式是纯文本格式的文件,以逗号分隔取值.CSV引擎表的所有列值不能为空.Excel可以直接打开有 ...