[Vjudge]卡片游戏

[Vjudge]卡片游戏,第1张

[Vjudge]卡片游戏

题目描述如图 贪心+STL应用 基本思路

最直观的想法,从第一位开始取,比较他和当前已经排好序的部分开头的数字比较,若比这个数字小,那么一定是放到左边作为新的开头,若是比这个数字大,那么一定放在右边
进一步来讲,得到的最终序列的开头一定是整个原序列中,从右往左数除0以外的最小的数,而这个数后面的数因为都大于这个最小的数,所以一定是顺序插入的,不会再改变顺序,他之前的数还是按照开始直观的想法插入即可,到这个数就放到开头
这里我用了STL中deque,双端队列,他是一个可以从头或者尾插入的队列,可以看做是一个动态的数组

代码
//By AcerMo
#include
#include
#include
#include
#include
#include
using namespace std;
signed main()
{
    int t;cin>>t;
    while(t--)
    {
        char s[105];cin>>s;
        int l=strlen(s),m=110;
        char mn='9';
        for(int i=0;i=s[i])
        mn=s[i],m=i;
        
		dequeq;
		q.push_back(s[0]);
		
        for(int i=1;im)
                q.push_back(s[i]);
            else if(i==m)
                q.push_front(s[i]);
        }
        while (q.size())
        cout<					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5611316.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存