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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【t081】序列长度(贪心做法)

發(fā)布時(shí)間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【t081】序列长度(贪心做法) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Time Limit: 1 second
Memory Limit: 128 MB

【問題描述】

 有一個(gè)整數(shù)序列,我們不知道她的長度是多少(即序列中整數(shù)的個(gè)數(shù)),但我們知道在某些區(qū)間中至少有多少個(gè)整數(shù),用區(qū)間
[ai,bi,ci]來描述它,[ai,bi,ci]表示在該序列中處于[ai,bi]這個(gè)區(qū)間的整數(shù)至少有ci個(gè)?,F(xiàn)在給出若干個(gè)這樣的區(qū)間,
請你求出滿足條件的最短序列長度是多少。如果不存在則輸出 -1。
【輸入格式】

第一行包括一個(gè)整數(shù)n(n<=1000),表示區(qū)間個(gè)數(shù);
  以下n行每行描述這些區(qū)間,第i+1行三個(gè)整數(shù)ai,bi,ci,由空格隔開,其中0<=ai<=bi<=1000 而且 1<=ci<=bi-ai+1。

【輸出格式】

文件輸出只有一個(gè)整數(shù)表示滿足要求序列長度的最小值。

Sample Input

5
3 7 3
8 10 3
6 8 1
1 3 1
10 11 1

Sample Output

6

【題目鏈接】:http://noi.qz5z.com/viewtask.asp?id=t081

【題解】

先把n個(gè)ai,bi,ci按照ai第一關(guān)鍵字,bi第二關(guān)鍵字升序排;
然后逆序處理n個(gè)關(guān)系;
優(yōu)先選ai..bi這個(gè)區(qū)間里面的前面部分(當(dāng)然如果這個(gè)區(qū)間里面有些數(shù)字已經(jīng)被選了就不用再選了),這樣優(yōu)先選前面的部分,就能讓前面的關(guān)系更容易利用公共的部分;就是這樣的貪心吧.
轉(zhuǎn)換成編程語言就是升序枚舉啦^_^
(想不出來什么情況會無解..)

【完整代碼】

#include <cstdio> #include <algorithm> using namespace std; const int MAXN = 1000+100;struct abc {int a,b,c;friend bool operator < (abc x,abc y){if (x.a==y.a){if (x.b==y.b)return true;elsereturn x.b<y.b;}elsereturn x.a < y.a;} };int n; bool bo[MAXN]; abc t[MAXN];int main() {//freopen("F:\\rush.txt","r",stdin);scanf("%d",&n);for (int i = 1;i <= n;i++)scanf("%d%d%d",&t[i].a,&t[i].b,&t[i].c);sort(t+1,t+1+n);for (int i = n;i >= 1;i--){for (int j = t[i].a;j <= t[i].b;j++)if (bo[j]){t[i].c--;if (t[i].c==0)break;}if (t[i].c!=0){for (int j = t[i].a;j <= t[i].b;j++)if (!bo[j]){t[i].c--;bo[j] = true;if (t[i].c==0)break;}}}int si = 0;for (int i = 0;i <= 1000;i++)if (bo[i])si++;printf("%d\n",si);return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/AWCXV/p/7626662.html

總結(jié)

以上是生活随笔為你收集整理的【t081】序列长度(贪心做法)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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