日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > codeigniter > Codeforces 467E Alex and Complicated Task(高效)

Codeforces 467E Alex and Complicated Task(高效)

來源:程序員人生   發布時間:2014-10-10 08:00:00 閱讀次數:5058次

題目鏈接:Codeforces 467E Alex and Complicated Task

題目大意:給定一個長度為n序列,然后從中挑選盡量多的4元組(不能重疊)。

解題思路:每次找的四元組的左端肯定是要盡量小的。所以用一個單調棧維護,如果新加入的數x在棧中出現過,那么就將兩個數之間的數標記為在x。如果一個數的標記不為空,就意味著找到對應的四元組。有因為序列是從左遍歷過去的,所以找到的一定是最優的。

#include <cstdio> #include <cstring> #include <map> #include <stack> #include <vector> #include <algorithm> using namespace std; const int maxn = 5 * 1e5 + 5; int N, B[maxn]; void solve () { vector<int> ans; map<int, int> pre, sum; int mv = 0; while (mv < N) { pre.clear(); sum.clear(); stack<int> sta; for (int& i = mv; i < N; i++) { if (pre[B[i]]) { for (int j = 0; j < 2; j++) { ans.push_back(pre[B[i]]); ans.push_back(B[i]); } break; } while (!sta.empty() && (sum[B[i]] > 1 || (sum[B[i]] == 1 && sta.top() != B[i]))) { pre[sta.top()] = B[i]; sum[sta.top()]--; sta.pop(); } sta.push(B[i]); sum[B[i]]++; } mv++; } printf("%lu ", ans.size()); for (int i = 0; i < ans.size(); i++) printf("%d%c", ans[i], i == ans.size() - 1 ? ' ' : ' '); } int main () { scanf("%d", &N); for (int i = 0; i < N; i++) scanf("%d", &B[i]); solve(); return 0; }
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 在线激情网站 | 精品视频在线播放 | 99av在线| 97精品在线视频 | 日韩欧美精品区 | 成人一区二 | 国产一二区在线 | 日本精品一区二区三区视频 | 久久男女视频 | 国产原创精品视频 | 久久久久91| 天天操人人干 | 成人在线视频免费观看 | 99精品免费| 亚洲精品欧美一区二区三区 | 99毛片| 一区福利 | 一区二区三区 在线 | 亚洲国产精品麻豆 | 国产伦精品一区二区三区视频黑人 | 日韩在线视频免费观看 | 欧美午夜一区二区三区 | av久久| 亚洲一区二区视频 | 欧美成人激情 | 九九九九精品 | 国产高清不卡 | www99| 亚洲欧洲精品在线 | 亚洲欧洲成人av每日更新 | 精品久久久影院 | 综合久久久久综合 | 久久久久久久久国产 | 亚洲第一av | 最新国产精品精品视频 | 一级特黄录像免费播放全99 | 国产精品三级视频 | 日韩av在线免费播放 | 男女视频在线观看 | 国产一区二区三区视频在线观看 | 亚洲综合电影 |