hdu_4548_卡片游戏

来源:互联网 发布:网页注入js 编辑:程序博客网 时间:2024/05/10 00:59

西山居第二简单的题~ 为什么今天的题这么简单啊各种哭~

贪心+模拟

原序列摆成答案序列后,原序列中从后数第一个最小的一定是生成序列的第一位.

源代码:

#include <myhead.h>  const int N=110;int n,m,sizeh;char a[N];list<char> lsa;void init() {lsa.clear();scanf("%s",a);sizeh=strlen(a);n=INT_MAX;for(int i=sizeh-1;i>=0;--i) {if(a[i]!='0'&&a[i]<n) {n=a[i];m=i;}}}void work() {/*if(sizeh==1) {puts(a);return ;}*/lsa.push_back(a[0]);for(int i=1;i<m;++i) {if(a[i]<=lsa.front()) {lsa.push_front(a[i]);} else {lsa.push_back(a[i]);}}if(m!=0)lsa.push_front(a[m]);for(int i=m+1;i<sizeh;++i) {lsa.push_back(a[i]);}for(list<char>::iterator iter=lsa.begin();iter!=lsa.end();++iter) {printf("%c",*iter);}puts("");}int main() {int t;scanf("%d",&t);while(t--) {init();work();}return 0;}