icpc:problems:704b_card_deck
problems | |
---|---|
名称 | Card Deck |
题目编号 | 704B |
题目链接 | codeforces.com/… |
来源 | CodeForces |
算法分类 | 贪心 |
难易程度 | 独立完成 |
Card Deck
想法
从后往前,每次贪心区域最大值。处理这个最大值也就一个循环就结束了。
代码实现
#include<cstdio>//uncle-lu #include<algorithm> template<class T>void read(T &x) { x=0;int f=0;char ch=getchar(); while(ch<'0'||ch>'9') { f|=(ch=='-'); ch=getchar(); } while(ch<='9'&&ch>='0') { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); } x = f ? -x : x; return ; } int line[100010]; int tag[100010]; int n; int main() { int T; read(T); for (int t = 1; t <= T; t++) { read(n); for (int i = 1; i <= n; i++) read(line[i]); int mx=line[1], sit=1; for (int i = 1; i <= n; i++) { if(line[i] > mx) { sit = i; mx = line[i]; } tag[i] = sit; } sit = n; while(sit) { for(int i=tag[sit]; i<=sit; ++i) printf("%d ", line[i]); sit = tag[sit] - 1; } printf("\n"); } return 0; }
/app/www/public/data/pages/icpc/problems/704b_card_deck.txt · 最后更改: 2023/10/01 10:32 由 温婕莺