日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU 6301.Distinct Values-贪心、构造字典序最小的数列 (2018 Multi-University Training Contest 1 1004)...

發(fā)布時(shí)間:2025/4/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU 6301.Distinct Values-贪心、构造字典序最小的数列 (2018 Multi-University Training Contest 1 1004)... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

?

HDU6301.Distinct Values

?

這個(gè)題就是給你區(qū)間要求區(qū)間內(nèi)的數(shù)都不相同,然后要求是字典序最小,直接貪心走一遍,但是自己寫的時(shí)候,思路沒有錯(cuò),初始化寫挫了。。。

將區(qū)間按左端點(diǎn)小的排序,如果相同就按右端點(diǎn)大的排序,因?yàn)橛叶它c(diǎn)大的肯定滿足右端點(diǎn)小的。然后直接標(biāo)記數(shù)組記錄當(dāng)前區(qū)間已有的數(shù),然后將沒有的數(shù)字填到里面。注意初始化就可以了。

?

代碼:

1 //1004-6301-字典序最小的序列,貪心策略,標(biāo)記當(dāng)前段出現(xiàn)過的 2 #include<iostream> 3 #include<cstdio> 4 #include<cstring> 5 #include<algorithm> 6 #include<cmath> 7 #include<cstdlib> 8 #include<cassert> 9 using namespace std; 10 typedef long long ll; 11 const int maxn=1e5+10; 12 13 struct node{ 14 int l,r; 15 bool operator< (const node &a) const { 16 if(l==a.l) return r>a.r; 17 else return l<a.l; 18 } 19 20 }a[maxn]; 21 22 int cnt[maxn],ans[maxn]; 23 int main() 24 { 25 int t; 26 scanf("%d",&t); 27 while(t--){ 28 int n,m;scanf("%d%d",&n,&m); 29 memset(cnt,0,sizeof(cnt)); 30 memset(ans,0,sizeof(ans)); 31 for(int i=0;i<m;i++) 32 scanf("%d%d",&a[i].l,&a[i].r); 33 sort(a,a+m); 34 for(int i=a[0].l;i<=a[0].r;i++) 35 ans[i]=i-a[0].l+1; 36 int num,L=a[0].l,R=a[0].r; 37 for(int i=1;i<m;i++){ 38 if(a[i].r<=R) continue; 39 num=1; 40 if(a[i].l<=R){ 41 for(int j=a[i].l;j<=R;j++) 42 cnt[ans[j]]=i; 43 for(int j=R+1;j<=a[i].r;j++){ 44 while(cnt[num]==i)++num; 45 ans[j]=num++; 46 } 47 L=a[i].l,R=a[i].r; 48 } 49 else{ 50 for(int j=a[i].l;j<=a[i].r;j++) 51 ans[j]=num++; 52 L=a[i].l,R=a[i].r; 53 } 54 } 55 for(int i=1;i<n;i++){ 56 if(ans[i])printf("%d ",ans[i]); 57 else printf("1 "); 58 } 59 if(ans[n])printf("%d\n",ans[n]); 60 else printf("1\n"); 61 } 62 return 0; 63 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/ZERO-/p/9385544.html

總結(jié)

以上是生活随笔為你收集整理的HDU 6301.Distinct Values-贪心、构造字典序最小的数列 (2018 Multi-University Training Contest 1 1004)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。