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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

USACO-Section1.3 Milking Cows (区间问题)

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 USACO-Section1.3 Milking Cows (区间问题) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2017-5-30

題目描述

給你幾個區間,求出最長的連續長度以及最短的連續長度

解答

最長為1000000,在區間內則賦值為1,否則不操作,最后計算出結果 即可,這種方法耗時比較長,注意區間的開閉問題

代碼

/* ID: 18795871 PROG: milk2 LANG: C++ */ #include<iostream> #include<fstream> #include<cstring> using namespace std;const int N = 1000000; bool f[N+1];ifstream fin("milk2.in"); ofstream fout("milk2.out");void res(int a,int b){for (int i=a;i<b;i++) f[i]=true; } int main() {int i,n,a,b,ma=-N,mi=N;fin>>n;memset(f,false,sizeof(f));for (i=0;i<n;i++){fin>>a>>b;ma=max(a,ma);ma=max(ma,b);mi=min(a,mi);mi=min(mi,b);res(a,b);}int res1=-N,res2=-N,sum1,sum2;i=mi;while (i<ma){sum1=0;sum2=0;while (!f[i]&&i<=ma){sum1++;i++;}while (f[i]&&i<=ma){sum2++;i++;}res1=max(res1,sum1);res2=max(res2,sum2);}fout<<res2<<" "<<res1<<endl;return 0; }

或者這么寫…其實是一樣一樣的。

/* ID: 18795871 PROG: milk2 LANG: C++ */ #include<iostream> #include<fstream> #include<cstring> using namespace std;ifstream fin("milk2.in"); ofstream fout("milk2.out");const int N = 1000000; bool f[N+1]; int n;int main(){int i,j,e,s,mis,mae;while (fin>>n){mis=N;mae=0;memset(f,false,sizeof(f)); for (i=0;i<n;i++){fin>>s>>e;mis=min(mis,s);mae=max(mae,e);for (j=s;j<e;j++){f[j]=1;}}int l=0,h=1,r1=0,r2=0;for (i=mis+1;i<=mae;i++){if (f[i]==f[i-1]){if (f[i]) h++;else l++;}else{r1=max(r1,l);r2=max(r2,h); if (f[i]){l=0;h=1;}else{l=1;h=0;}}}fout<<r2<<" "<<r1<<endl;}return 0; }

按理來說應該是可以按照開始時間排序然后求解的。

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的USACO-Section1.3 Milking Cows (区间问题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。