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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

POJ 2566 Bound Found

發布時間:2025/6/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 POJ 2566 Bound Found 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意 : 給你n個數字,這些數字可正可負,再給你個數字t,
求在這個數列中一個連續的子序列,和的絕對值 與t相差最小;

數據范圍較大, 考慮數字沒有負數的情況,
能夠想到用尺取法解決, (關于尺取法, 自己感受一下這東西的奇妙, 不好說, 理解了之后也沒什么好說, 實現主要是首尾指針的移動), 那么增加了負數之后, 發現題目中要的是序列的絕對值, 發現直接排序前綴和即使用后面的前綴和減去前面的前綴和, 也沒有關系;

但主要需要注意的是本題細節比較煩, 在POJ上WA了3,4次, 這里提示一下
注意如果給出的值為0時的處理, 還有就是自己多想幾組小數據來調試, 調的很惡心, 但也很享受, 適合做尺取的好題

/* *題意:給你n個數字,這些數字可正可負,再給你個數字t, *求在這個數列中一個連續的子序列,和的絕對值 與t相差最小 * ————Galaxy TODO */ #include <cstdio> #include <algorithm>typedef long long LL;const int N = 1e5 + 10; #define C c = getchar() #define rep(i, s, t) for(int i = s; i <= t; ++i)LL abs(LL x) {return x>0?x:-x;} int read(int x=0, int t=1) {char C;while(c<'0' || c>'9') {if(c=='-') t=-1; C;}while(c>='0' && c<='9') x = x*10 + c-'0', C;return x*t; }struct Sum_tot{LL sum; int rk;//Sum_tot(int _sum, int _rk) {sum = _sum; rk = _rk;}bool operator < (const Sum_tot& rhs) const{return sum < rhs.sum;} }P[N];int main() { #ifndef ONLINE_JUDGEfreopen("input.in", "r", stdin);freopen("res.out", "w", stdout); #endifint n, T; LL S;while(scanf("%d%d", &n, &T) == 2 && n+T) {P[0].sum = 0, P[0].rk = 0;rep(i, 1, n) P[i] = ((Sum_tot) {P[i-1].sum+read(), i});std :: sort(P, P+n+1);// rep(i, 0, n) printf("%lld%c", P[i].sum, i^n?' ':'\n');while(T--) {scanf("%lld", &S);int ansl=n, ansr=n;int l = n-1, r = n;LL res = 1LL << 62;while(r > l) {// printf("%d %d__debug1\n", l, r);while(P[r].sum - P[l].sum <= S && l >= 0) { if(abs(P[r].sum-P[l].sum-S) < abs(S-res)) {res = P[r].sum - P[l].sum;ansl = P[l].rk, ansr = P[r].rk;}--l;}if(l < 0) break;// printf("%d %d__debug2\n", l, r);while(P[r].sum - P[l].sum >= S && r > l) { if(P[r].sum-P[l].sum-S < abs(res-S)) {res = P[r].sum - P[l].sum;ansl = P[l].rk, ansr = P[r].rk;}--r;}if(r < 0) break;if(l == r) --l;if(l < 0) break;// printf("%d %d__debug3\n", l, r);if(res == S) break;}if(ansl+1 > ansr) std::swap(ansl, ansr);printf("%lld %d %d\n", res, ansl+1, ansr);}}return 0; } //XXX

轉載于:https://www.cnblogs.com/pbvrvnq/p/8530155.html

總結

以上是生活随笔為你收集整理的POJ 2566 Bound Found的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久国产精品影院 | 超碰在线观看免费 | 国产一区免费观看 | 无码人妻精品一区二区三区99v | free欧美性69护士呻吟 | 伊人网址 | 日本成人在线一区 | 日韩福利在线观看 | av在线免费播放网站 | 天天看天天做 | 俄罗斯嫩小性bbwbbw | 欧美大黄视频 | 欧美色v| 特黄aaaaaaaaa毛片免费视频 | 国产精品一区二区久久久 | 欧美激情网站 | 久操精品视频 | 欧美一级片在线免费观看 | 久久av一区二区三区 | 亚洲AV永久无码国产精品国产 | 麻豆午夜| 久久久久久久久久久91 | 美女网站av| 国产精品伦一区二区三区 | www,av在线 | 91视频合集 | 色婷婷亚洲一区二区三区 | 精品国产av 无码一区二区三区 | 黄色一级片免费看 | 人物动物互动39集免费观看 | 欧洲mv日韩mv国产 | 亚洲国产精品成人综合色在线婷婷 | 亚洲第一区视频 | www.久久艹 | 日韩精品免费在线 | 日本成人三级电影 | 精品国产亚洲av麻豆 | 国产亚洲一区二区三区四区 | 在线免费观看黄网站 | 久草成人在线视频 | 欧美激情日韩 | 久久精品无码专区 | 日批在线观看视频 | 国产人妻人伦精品1国产丝袜 | 美国一级大黄一片免费中文 | 日韩精品四区 | 成人性爱视频在线观看 | 免费污网站在线观看 | 亚洲区久久| 久久婷婷一区二区 | 色哟哟国产精品色哟哟 | 国产精品视频久久久久久 | 国产美女视频免费观看下载软件 | 国产91边播边对白在线 | 亚洲欧洲日韩av | 亚洲专区第一页 | 伊人视频在线观看 | 免费黄色在线观看 | 日本黄色片网址 | 欧美亚洲天堂网 | 天堂久久精品 | 亚洲性网 | 手机av网 | 伊人色在线视频 | 男裸体无遮挡网站 | 日韩精品免费播放 | 久久久久久久久福利 | 中日精品一色哟哟 | 亚洲最大视频网站 | 天天色综合图片 | 欧美男女交配视频 | 国产精品成人免费一区二区视频 | 免费看黄在线观看 | www.777奇米 | 欧美性xxxx图片 | 97超碰人人草 | 国产一二三在线视频 | 蜜桃在线一区二区 | av美女在线观看 | 国产av成人一区二区三区高清 | 人妖粗暴刺激videos呻吟 | 久久91精品国产91久久小草 | 精品国产美女 | 香蕉视频国产在线观看 | 美女扒开大腿让男人桶 | 狠狠操狠狠操狠狠操 | 老司机午夜剧场 | 在线国产中文字幕 | 日本成人性爱 | 中文字幕av播放 | 最近国语视频在线观看免费播放 | 在线视频欧美日韩 | 久久免费公开视频 | 8x8x永久免费视频 | 一色桃子juy758在线播放 | 欧美亚洲黄色 | 亚洲成人av在线播放 | 三级黄色生活片 | 精品国模一区二区三区 |