HDU6301 Distinct Values (多校第一场1004) (…
2018-09-10 00:59:16来源:博客园 阅读 ()
Distinct Values
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4869 Accepted Submission(s): 1659
Chiaki would like to find a lexicographically minimal array which meets the facts.
The first line contains two integers n and m (1≤n,m≤105) -- the length of the array and the number of facts. Each of the next m lines contains two integers li and ri (1≤li≤ri≤n).
It is guaranteed that neither the sum of all n nor the sum of all m exceeds 106.
1 // D 2 #include <bits/stdc++.h> 3 using namespace std; 4 #define rep(i,a,n) for (int i=a;i<n;i++) 5 #define per(i,a,n) for (int i=n-1;i>=a;i--) 6 #define pb push_back 7 #define mp make_pair 8 #define all(x) (x).begin(),(x).end() 9 #define fi first 10 #define se second 11 #define SZ(x) ((int)(x).size()) 12 typedef vector<int> VI; 13 typedef long long ll; 14 typedef pair<int,int> PII; 15 const ll mod=1000000007; 16 ll powmod(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;} 17 ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;} 18 // head 19 20 const int N=101000; 21 int _,n,m,pre[N],l,r,ret[N];//pre维护覆盖i的最左端点 22 int main() { 23 for (scanf("%d",&_);_;_--) { 24 scanf("%d%d",&n,&m); 25 rep(i,1,n+1) pre[i]=i; 26 rep(i,0,m) { 27 scanf("%d%d",&l,&r); 28 pre[r]=min(pre[r],l); 29 per(i,1,n) pre[i]=min(pre[i],pre[i+1]);//pre[i]是pre[i]和pre[i+1]的最小值 30 int pl=1;//从1开始 和覆盖每个点的最左端点pre[i]比较 31 set<int> val; 32 rep(i,1,n+1) val.insert(i);//维护最小可用的数 33 rep(i,1,n+1) { 34 //上个 [pl, i-1] 35 36 //当前 [pre[i], i] 37 while (pl<pre[i]) {//小于pre[i]的点的值 插入set 38 val.insert(ret[pl]); 39 pl++; 40 } 41 ret[i]=*val.begin();//不小于直接取最小的数放进去 42 val.erase(ret[i]);//删除刚放入的数 43 } 44 rep(i,1,n+1) printf("%d%c",ret[i]," \n"[i==n]); 45 } 46 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 4 Values whose Sum is 0 POJ - 2785 2018-08-21
- 扩展lamda表达中distinct按照字段去除重复 2018-06-18
- 【C#】list 去重(转载) 2018-06-18
- E - The Values You Can Make 2018-06-17
- POJ_3368_Frequent values 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash