uva489(需要考虑周全)

这个题是简单题,但是我的思路本身不周全,忽略了一种比较“无理”的情况,而导致WA多次。我是把猜的串全扫一遍以后判断出结果,但是实际上可能是前面已经全猜对了,但是这个选手是个逗比,已经猜对了还要猜,而且后面还又猜错了几次,导致最后猜错的总次数大于7。这种情况下应该也算win的。所以如果已经全猜对了,就跳出,不要再看g串后面的了。这种不太正常的输入也是符合题目要求的,不能不考虑。以后要注意这些陷阱。

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<stack>
#include<queue>
#include<ctype.h>
using namespace std;
#define INF 1000000000
#define eps 1e-8
#define pii pair<int,int>
#define LL long long int
#define maxn 110
int cas,ans,a[26],chu;
char anstr[3][30]= {{"You win."},{"You lose."},{"You chickened out."}};
char y[100000],g[100000];
int main()
{
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    while(scanf("%d",&cas)==1)
    {
        if(cas==-1) break;
        ans=0;
        chu=0;
        memset(a,0,sizeof(a));
        scanf("%s%s",y,g);
        int leny=strlen(y);
        int leng=strlen(g);
        for(int i=0; i<leny; i++)
        {
            a[y[i]-‘a‘]++;
        }
        int cuo=0;
        for(int i=0; i<leng; i++)
        {
            if(chu==leny) {break;}
            if(a[g[i]-‘a‘]==0)
            {
                cuo++;
                a[g[i]-‘a‘]=-1;
                if(cuo==7)
                {
                    ans=1;
                    break;
                }
            }
            else if(a[g[i]-‘a‘]>0)
            {
                chu+=a[g[i]-‘a‘];
                a[g[i]-‘a‘]=0;
            }
        }
        if((cuo<7)&&(chu<leny))
        {
            for(int i=0; i<26; i++)
            {
                if(a[i]>0)
                {
                    ans=2;
                    break;
                }
            }
        }
        printf("Round %d\n",cas);
        printf("%s\n",anstr[ans]);
    }
    //fclose(stdin);
    //fclose(stdout);
    return 0;
}
时间: 2024-11-06 13:56:24

uva489(需要考虑周全)的相关文章

流媒体加密(1)

http://www.jiamisoft.com/blog/11238-liumeitijiamijishu.html 随着Internet的飞速发展和网上多媒体应用的普及,数字版权和隐私权的保护已成了一个愈来愈令人关注的问题,媒体资源的安全 也就成了一个热点的研究课题,而加密技术是保护媒体资源安全最重要的技术手段之一.笔者从传统密码技术入手,在结合流式媒体的特征基础上对其加密/解密机 制进行了深入的研究目的是将传统的密码技术与新兴的流媒体技术相结合,实现多媒体数据的实时加密保护. 一.用常规密

RDIFramework.NET框架SOA解决方案(集Windows服务、WinForm形式与IIS形式发布)-分布式应用

RDIFramework.NET框架SOA解决方案(集Windows服务.WinForm形式与IIS形式发布)-分布式应用 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为指导思想,作为异质系统整合与互操作性.分布式应用提供了可行的解决方案. 1.SOA平台简介 1.1.概述 SOA(service-oriented architecture,也叫面向服务的体系结构或面向服务架构)是指为了解决在Inte

ssh秘钥交换详解与实现 diffie-hellman-group-exchange-sha

ssh的DH秘钥交换是一套复合几种算法的秘钥交换算法.在RFC4419中称为diffie-hellman-groupX-exchange-shaX 的算法(也有另一种单纯的 rsaX-shaX 交换算法).本文就以diffie-hellman-group-exchange-sha256为例,详尽地讲解整个完整的秘钥交换过程. 笔者在RFC上和网上看了很久,也只是做了一个大致了解,对实现的帮助不大.实际在实现过程中,有太多的细节需要注意,在很多细节的分歧中,需要自己抱着勇气去测试.(原谅我不看op

[Hadoop] Hadoop学习历程 [持续更新中…]

1. Hadoop FS Shell Hadoop之所以可以实现分布式计算,主要的原因之一是因为其背后的分布式文件系统(HDFS).所以,对于Hadoop的文件操作需要有一套全新的shell指令来完成,而这就是Hadoop FS Shell.它主要是用于对Hadoop平台进行文件系统的管理. 有关HDFS的介绍博客请移步:Hadoop学习笔记之Hadoop基础. 有关Hadoop FS Shell的学习文档:Hadoop FS Shell学习文档. 2. Hadoop Streaming 我们知

C语言实现简单的单向链表(创建、插入、删除)及等效STL实现代码

实现个算法,懒得手写链表,于是用C++的forward_list,没有next()方法感觉很不好使,比如一个对单向链表的最简单功能要求: input: 1 2 5 3 4 output: 1->2->5->3->4 相当于仅仅实现了插入.遍历2个功能(当然遍历功能稍微修改就是销毁链表了) 用纯C写了份测试代码 /* 基本数据结构的定义以及函数的声明 */ typedef int ElemType; typedef struct Node { ElemType elem; struc

工作中技术学习总结-初版

公司项目框架SSH,使用工作流引擎activiti-engine,公司内部框架封装:表单框架.数据库对应实体框架.自定义标签.流程配置框架:另外吐槽,公司对SSH框架应用不太深入! 目录: JSP action-struts2 hibernate3 spring3 oracle linux webservice jxl json-gson dom4j fusionChart 尾页 掌握技术-list: JSP jstl表达式与js混用,Java代码与js混用. 静态引入JSP标准文件,常用外部j

HDOJ Problem 1001

输入32位的有符号整数,求和SUM(n)的值. 1 #include <stdio.h> 2 3 int main(void) 4 { 5 int n,sum,i; 6 7 while(scanf("%d",&n) != EOF) 8 { 9 sum = 0; 10 11 for(i = 1;i <= n;i++) 12 sum += i; 13 printf("%d\n\n",sum); 14 } 15 16 return 0; 17 }

深入Go的错误处理机制使用

开篇词 程序运行过程中不可避免的发生各种错误,要想让自己的程序保持较高的健壮性,那么异常,错误处理是需要考虑周全的,每个编程语言提供了一套自己的异常错误处理机制,在Go中,你知道了吗?接下来我们一起看看Go的异常错误机制. Go错误处理,函数多返回值是前提 首先我们得明确一点,Go是支持多返回值的,如下,sum函数进行两个int型数据的求和处理,函数结果返回最终的和(z)以及入参(x,y),既然支持多返回值,同理,我们能否把错误信息返回呢?当然是可以的 func sum (x,y int) (i

shell向子进程发送信号

处理包含子进程的脚本,假设您希望终止任意子进程,那么还需要停止这些脚本.trap 命令完成此操作. 子进程 以 & 运行的子进程,最为后台程序运行,父进程与子进程之间为异步 已直接方式运行子进程,此时子进程在前台运行,父进程与子进程之间为同步 sleep 10 #等待10秒,再继续下一操作 sleep 10 & #当前shell不等待,后台子shell等待 trap Unix system by design doesn't allow any script/program to trap