【POJ2589】Snap(模拟)

C++ 排列标程 排列标程,绝对AC,时间复杂度O(n log n), 最优解,希望采纳! 立即下载

记录一个菜逼的成长。。

题目链接
题目大意:
有两个人初始有同样数量的牌组,背面朝上放置。两人同时翻开牌组最上面的一张牌,如果不相同,则将牌正面朝上放置在另一堆上。如果相同,则由随机函数判断一个人将另一个人的正面朝上的牌组全部拿过来放到自己正面朝上的牌组的上面。如果一个人牌组翻完了,则将自己正面朝上的那堆翻转,重复操作,直到一个人拥有全部的牌。则这个人获胜。
如果1000回合之后,还没有胜负则输出”Keeps going and going …”。
一回合我认为是有一个人的牌组翻完了就算一回合。

用queue和vector模拟即可。
这题题面上说随机函数除以141,然而除以99才能过。。

#include <queue>
#include <cstdio>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;
#define pb push_back
const int maxn = 1000 + 10;
char s1[maxn],s2[maxn];
int main()
{
    while(~scanf("%s%s",s1,s2)){
        int len = strlen(s1);
        len *= 2;
        queue<char>p,q;
        vector<char>vp,vq;
        for( int i = 0; s1[i]; i++ ){
            p.push(s1[i]);
            q.push(s2[i]);
        }
        int cnt = 0;
        int ind = 0;
        while( cnt < 1000 && p.size()+vp.size() != len && q.size()+vq.size() != len){
            while(!p.empty() && !q.empty()){
                cnt++;
                char c1 = p.front();
                p.pop();
                char c2 = q.front();
                q.pop();
                vp.pb(c1);
                vq.pb(c2);
                if(c1 == c2) {
                    int t = rand() / 99 % 2;
                    if(!t){
                        for( int i = 0; i < vq.size(); i++ ){
                            vp.pb(vq[i]);
                        }
                        vq.clear();
                        printf("Snap! for Jane: ");
                        for( int i = vp.size()-1; i >= 0; i-- ){
                            printf("%c",vp[i]);
                        }
                        puts("");
                    }
                    else {
                        for( int i = 0; i < vp.size(); i++ ){
                            vq.pb(vp[i]);
                        }
                        vp.clear();
                        printf("Snap! for John: ");
                        for( int i = vq.size() - 1; i >= 0; i-- ){
                            printf("%c",vq[i]);
                        }
                        puts("");
                    }
                }
            }
            if(p.empty()){
                for( int i = 0; i < vp.size(); i++ ){
                    p.push(vp[i]);
                }
                vp.clear();
            }
            if(q.empty()){
                for( int i = 0; i < vq.size(); i++ ){
                    q.push(vq[i]);
                }
                vq.clear();
            }
        }
        if(cnt == 1000){
            puts("Keeps going and going ...");
        }
        else if(p.size()+vp.size() == len){
            puts("Jane wins.");
        }
        else {
            puts("John wins.");
        }
    }
    return 0;
}

最大团问题测试数据 最大团问题的测试数据。 按照不同的数据规模整理,每一组测试数据都是精心构造的,对验证算法的有效性非常有帮助。 每一个文件就是一组输入,以邻接表的形式输入一个图。格式如下: 第一行: p edge 顶点数 边数 以下每一行: e 顶点号 顶点号 说明: p edge , e 是固有的,顶点号从 1 开始。例如: p edge 4 3 e 1 2 e 2 3 e 3 4 文件的标题就是这个图的答案,即最大团的顶点数。 立即下载

相关推荐

FAGLB03余额显示异常排查与修复指南

本文针对SAP新总账中FAGLB03报表余额显示异常问题,提供了专业的排查与修复指南。文章深入剖析了数据不一致的核心原因,如FAGLFLEXT汇总表与凭证明细不同步、年度余额结转(FAGLGVTR)失败等,并详细介绍了使用FAGLF03进行精准诊断、通过SE38执行标准调整程序TFC_ADJUST_VZ进行修复的标准操作流程,帮助用户快速恢复数据一致性,确保财务报表的准确性。

weixin_29313423的博客 307

【模拟法】POJ2632

【模拟法】POJ2632

m0_71009069的博客 191

终端运行脚本报: 因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fw link/?LinkID=135170 中的 about_Execution_

PowerShell 执行策略是一种安全机制,用于控制哪些脚本可以在系统上运行。默认情况下,Windows 系统会设置较为严格的执行策略,以防止恶意脚本的执行。执行策略有以下几种常见级别:Restricted(限制):不允许运行任何脚本。AllSigned(全部签名):仅允许运行经过数字签名的脚本。RemoteSigned(远程签名):允许运行本地脚本,但远程下载的脚本需要数字签名。Unrestricted(无限制):允许运行所有脚本,但会警告未签名的脚本。

欢迎来到我的技术博客!这里是一个专注于软件开发的地方,我将分享关于 Java、Python、C++ 和易语言等多种编程语言的教程、技巧、最佳实践以及开发经验。 5080

POJ 1008 (模拟)

题意:玛雅日历有两种,第一种一年365天19个月前18个月每月20天,第19月5天,第二种日历是一年260天,13个月每月20天,每月有两种计算天数的一种是英文,一种是1~13天。 题外话:现在为止我还是极少接触算法,这道题听说是简单的模拟题。虽然我的bug太多改了很久,但是我还是觉得极大增强了我的信心。 #include #include char Haab[25][10] = {"pop"

Since_natural_ran 508

华为OD机试双机位C卷-停车场收入统计 (Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷 停车场收入统计,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 停车场收入统计。

qq_45776114的博客 2185

Sigrity Power Tree如何生成电源树操作指导

Sigrity Power Tree可以方便地生成电源树,仅需要网表文件就能将系统的电源树直观的显示出来,生成的电源树文件可以用Power DC,optimizePI进行直流和交流仿真,下面介绍如何生成电源树。Base on [Device_TYPE and VALUE]就是识别网表中器件的Device_TYPE作为power tree中的模型的名字。Allegro layout netlist file,就是从Allegro layout文件中输出的netlist第三方网表文件。如何生成电源树操作指导。

weixin_54787054的博客 1534

POJ3362 模拟|水题

poj.org/problem?id=3362 又是一道AC比例超低的水题,说题意有分歧有点勉强,不清楚当年发生了什么。。。 题目倒是挺有趣的, 24hour是我以前热追的美剧 思路很简单,直接模拟 1. 记录每个位置上点的个数,如果某一时刻,点0坐在位置上所有点的个数等于点的总数,则检测到恐怖袭击 2. 每个点按照FLFLFL...交替的顺序寻找下一个位置 3. 除了第一次移动,F/L的方向由当前位置和前一次位置决定,这时候如果没有前一次位置那么点就保持不懂 模拟的最长次数是24*3,非常小

CrySleeper的专栏 348

挂载(Mount)是什么意思

挂载 = 把一个存储设备或文件系统“接入”到现有的目录树,使其内容能够被访问。

天赐好车的博客 288

poj 2334 Simple prefix compression(模拟/字符串处理)

程序设计实习递归作业 Simple prefix compression

PKU_ZZY的博客 2457

SAP_SD模块更改销售订单定价简介

方式优点缺点适用场景MASS简单,无需开发不能触发重新定价逻辑修改特定字段BDC (VA02)可模拟人工操作维护复杂,速度慢少量订单批改稳定、安全需ABAP支持推荐用于批量重新定价VBOF标准重算返利仅适返利类条件返利更新通过本文,我们了解了 SAP 的[SAP_SD模块更改销售订单定价]的基本概念和应用方法。希望这些信息能帮助您在实际工作中更好地使用 SAP 系统,提高工作效率和管理水平。更多SAP文章请点击更多SAP文章更新,大家一起学习进步!!!

我小时候很黑的博客 712

柑橘病虫害识别方案总结

1. 方案一 1.1 赛题背景 1.2 数据分析 1.3 模型设计 1.3.1 模型具体方案 1.3.2 模型设计 1.4 实验结果 1.5 总结与展望 2. 方案二 2.1 赛题介绍 2.2 数据分析 2.3 算法方案解析 2.3.1 检测模型 2.3.2 提升策略 2.4 优化思路 3. 方案三 3.1 数据分析 3.1.1 数据说明 3.2 技术展示 3.2.1 数据输入端 3.2.2 模型结构端 3.2.3 上下文信息 3.2.4 训练优化端 3.2.5 创新性分析 3.3 算法及系统思考.....

herosunly的博客 2万+

POJ 1877(模拟)

#include&lt;iostream&gt; #include&lt;cmath&gt; #include&lt;string.h&gt; #include&lt;algorithm&gt; #include&lt;iomanip&gt; #include&lt;cstdio&gt; typedef long long ll; using namespace std; int main()...

兜率工的博客 719

mabl:AI原生测试自动化平台的基础使用

mabl是一个基于人工智能和机器学习的云原生测试自动化平台。它通过使用先进的技术,如机器学习,自动创建和执行测试,自动分析测试结果,并根据需求的变化自动适配和维护测试。这样的自动化过程极大地提高了软件测试的效率和准确性。mabl的口号是 “You write code, mabl tests”,意味着开发者只需关注编写代码,而测试工作则可以交给mabl来完成。mabl的平台支持多种测试类型,包括 Web、App、Api、可访问性和性能测试,使得团队能够更快速、更有信心地发布软件。

blues_C的博客 3655

POJ-1680(递归模拟)

题目:http://poj.org/problem?id=1680 分析:父进程wait会等到子进程执行完成之后才继续下一步,每个进程都执行相同的代码,刚好和递归函数调用的方式一致。需要注意的是【ProcessID==0】每个子进程仅打印一次,对应到递归调用中,就是进入函数时打印一次。 #include const int kRoot = 1000; int N, K, P; b

还有多远 906

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

POJ 1068 Parencodings

Parencodings Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 15566   Accepted: 9275 Description Let S = s1 s2...s2n be a well-formed string of parentheses. S c

ACM2272902662的专栏 798

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

poj1472--Instant Complexity(模拟)

Instant Complexity Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit Status   Appoint description:  System Crawler  (2013-03-03) Description Anal

随风的专栏 1270

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

poj 2106 模拟堆里模拟!!

#include #include #include #include using namespace std; char s[1000]; stack xi; stack temp; char handle(char a,char b,char op) { if(op=='&') { if(a=='V'&&b=='V') return 'V'; return 'F';

JogRunner的专栏 692

POJ 2697 A Board Game (bfs模拟)

比较水的一道题,在4*4的棋盘上有黑白子,现在有某种移动方式,问能否通过它将棋盘从某个状态移动到另一种状态 只要想好怎么保存hash表来去重,其他就差不多了... #include #include #include #include #include #include #include #include #include #include #includ

Paradiser 1616

poj2632(模拟)

题目题意:就是按照题意模拟就好啦。 WA了6发,各种细节错,(但是能A了还是很高兴哈哈哈)#include<cstdio> #include<algorithm> #include<cstring> #include<map> using namespace std;int t,n,m,num,ac,a,b; struct bbq { int x,y; char f[2]; } e

开心铁匠铺 324

poj1035 模拟

题意:输入一部字典,然后输入若干单词, 1.若该单词在字典中能查到,则输出correct 2.若该单词通过替换、删除、添加一个字符后,可以在字典中查到,输出字典中单词 3.不符合1、2者,输出空 算法:模拟 #include #include using namespace std; const int SIZE=10010; char dict[SIZE][20]

aidway的专栏 352

poj 3295 构造

题意:本题是二叉树的先根遍历,可采用堆栈或递归。给出一个式子,判断是否是永真式,命题有p,q,r,s,t五种,逻辑谓词有K(&),A(|),N(~),C(包含),E(==)五种,我自己是这么理解的用词可能不准确。 思路:构造一个栈,c++现成有,从右往左读输入的字符串,把命题所对应的数据(已经事先生成了,是这些命题的全排列,所有情况组合情况都考虑)压入栈中,每次遇到一个谓词时就取出数据计算,结果

实践之路 711

POJ1350模拟

Cabric Number Problem Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11008   Accepted: 3379 Description If we input a number formed by 4 digits and these di

博学 笃志 切问 近思 284

POJ-3856(模拟构造目录树)

题目:http://poj.org/problem?id=3856 分析:根据命令输出构造出目录树,需要注意的地方:(1)cd 后跟的目录可能之前没有出现过;(2)根据deltree作为case的最后一行输入,而不是题目中说的每个case之后会跟一个空行(sample input里第3个和第4个case之间就没有空行) #include #include #include #in

还有多远 620

POJ 1363 - 模拟栈操作的水题..

USACO又卡住了T_T...好郁闷...找了到水题来娱乐娱乐..     这题就是说输入的顺序是1~N..然后有一个栈可以用..问能否得到所给的输出顺序...直接模拟栈的操作..从1开始做到N为止..每来一个数先放入栈顶..如果栈顶的数等于当前输出队列的指针位置的数(这个指针初始位置为1)..那么弹栈并且移动输出队列的指针(往后移一位,既++)直到输出队列指针位置的数与栈顶的数不相等~~1~N

zzyzzy12 3458
上一篇: Codeforces Round #390 (Div. 2)-DFedor and coupons(优先队列)
下一篇: 【POJ2587】Airline Hub(经纬度求距离)
oranges_c
博客等级 码龄10年 30粉丝 216原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值