Secret Research UVA 621

说说:这道题非常之坑!开始还以为要递归判断的,其实根本不用,只要判断第一层的S即可,其中内嵌的S肯定是正确的。居然还有这样的题目,真的很无语╮(╯_╰)╭

题目:

Secret Research

At a certain laboratory results of secret research are thoroughly encrypted. A result of a single experiment is stored as an information of

实验室关于一些秘密研究成果都是进行完全加密的。实验的结果按照它的完成情况分为:

its completion:

`positive result‘, `negative result‘, `experiment failed‘ or `experiment not completed‘

‘积极结果’,‘消极结果’,‘实验失败’,‘实验未完成’

The encrypted result constitutes a string of digits S, which may take one of the following forms:

加密的结果组成了一个数字串S,它将采用以下的某种形式

 positive result 		 S = 1 or S = 4 or S = 78  negative result 		 S = S35  experiment failed 		 S = 9S4  experiment not completed 		 S = 190S 

(A sample result S35 means that if we add digits 35 from the right hand side to a digit sequence then we shall get the digit sequence corresponding to a failed experiment)

(如结果S35意思是如果我们把数字35加到一个数字串的右边那么这就是个消极结果(译:原文为实验失败,我认为有误))

You are to write a program which decrypts given sequences of digits.

你需要写一个程序对数字串进行解密

Input

A integer n stating
the number of encrypted results and then consecutive n lines,
each containing a sequence of digits given as ASCII strings.

整数n代表加密结果的数目,接下来的连续的n行,每行都是用ASCII码表示的数字串

Output

For each analysed sequence of digits the following lines should be sent to output (in separate lines):

分析完数字串后需要输出结果,且一行一个结果

+ for a positive result - for a negative result * for a failed experiment ? for a not completed experiment 

In case the analysed string does not determine the experiment result, a first match from the above list should be outputted.

万一数字串并为决定实验结果,输出上表中第一个匹配的项。

Sample Input

4
78
7835
19078
944

Sample Output

+
-
?
*

源代码:

#include <stdio.h>
#include <string.h>

int main(){
 int N,len;
 char S[1000];
 //freopen("data.txt","r",stdin);
 scanf("%d",&N);

 while(N--){
    scanf("%s",S);
    len=strlen(S);
    if(len<=2){//是否为positive
        printf("+\n");
        continue;
    }
    if(S[0]=='9'&&S[len-1]=='4'){//是否为failed
        printf("*\n");
        continue;
    }
    if(S[len-1]=='5'){//是否为negative
        printf("-\n");
        continue;
    }
    printf("?\n");
 }
 return 0;
}

Secret Research UVA 621

时间: 2024-10-15 13:32:51

Secret Research UVA 621的相关文章

UVA - 621 Secret Research(水)

开始 没看懂最后一句话,后来 发现不用去考虑不能匹配的情况,那么就是一个水题了. #include<cstdio> #include<cstring> char s[10000]; int main() { int n,i,j; scanf("%d",&n); getchar(); for(i=0;i<n;i++) { scanf("%s",s); int l=strlen(s); if(strcmp(s,"1&quo

UVA题目分类

题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics 10300 - Ecological Premium 458 - The Decoder 494 - Kindergarten Counting Game 414 - Machined Surfaces 490 - Rotating Sentences 445 - Marvelous Mazes

poj3708(公式化简+大数进制装换+线性同余方程组)

刚看到这个题目,有点被吓到,毕竟自己这么弱. 分析了很久,然后发现m,k都可以唯一的用d进制表示.也就是用一个ai,和很多个bi唯一构成. 这点就是解题的关键了. 之后可以发现每次调用函数f(x),相当于a(ai),b(bi)了一下.这样根据置换的一定知识,一定会出现循环,而把循环的大小看成取模,把从m->k的看成余,于是可以建立一个线性同余方程. 直接用模板解决之.. Recurrent Function Time Limit: 1000MS   Memory Limit: 65536K To

poj 3708 Recurrent Function

Recurrent Function Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1233   Accepted: 336 Description Dr. Yao is involved in a secret research on the topic of the properties of recurrent function. Some of the functions in this research are

UVA 10837 - A Research Problem(欧拉函数)

UVA 10837 - A Research Problem 题目链接 题意:给定phi(n),求最小满足的最小的n 思路:phi(n)=pk11(p1?1)?pk22(p2?1)?pk33(p3?1)....(p为质数),因此对于给定phi(n),先把满足条件phi(n)%(p?1)=0的素数全找出来,在这些素数基础上进行暴力搜索,枚举哪些素数用与不用,求出最小值.这样做看似时间复杂度很高,但是实际上,由于每次多选一个素数之后对于值是呈指数上升的,所以实际组合出来的情况并不会太多,因此是可行的

uva 10837 - A Research Problem(欧拉函数+暴力)

题目链接:uva 10837 - A Research Problem 题目大意:给定一个phin,要求一个最小的n,欧拉函数n等于phin 解题思路:欧拉函数性质有,p为素数的话有phip=p?1;如果p和q互质的话有phip?q=phip?phiq 然后根据这样的性质,n=pk11(p1?1)?pk22(p2?1)???pkii(pi?1),将所有的pi处理出来,暴力搜索维护最小值,虽然看上去复杂度非常高,但是因为对于垒乘来说,增长非常快,所以搜索范围大大被缩小了. #include <cs

uva 10837 - A Research Problem(欧拉功能+暴力)

题目链接:uva 10837 - A Research Problem 题目大意:给定一个phin.要求一个最小的n.欧拉函数n等于phin 解题思路:欧拉函数性质有,p为素数的话有phip=p?1;假设p和q互质的话有phip?q=phip?phiq 然后依据这种性质,n=pk11(p1?1)?pk22(p2?1)???pkii(pi?1),将全部的pi处理出来.暴力搜索维护最小值,尽管看上去复杂度很高,可是由于对于垒乘来说,增长很快,所以搜索范围大大被缩小了. #include <cstdi

UVA 12467 - Secret Word

UVA 12467 - Secret Word kmp+二分,二分枚举答案的长度,用kmp判断是否合法 #include <bits/stdc++.h> using namespace std; #define rint register int #define rll register long long #define long long ll const int maxn = 1e6 + 100; char a[maxn], b[maxn]; int pi[maxn], f[maxn];

UVa 10837 (欧拉函数 搜索) A Research Problem

发现自己搜索真的很弱,也许做题太少了吧.代码大部分是参考别人的,=_=|| 题意: 给出一个phi(n),求最小的n 分析: 回顾一下欧拉函数的公式:,注意这里的Pi是互不相同的素数,所以后面搜索的时候要进行标记. 先找出所有的素数p,满足(p - 1)整除题目中所给的phi(n) 然后暴搜.. 素数打表打到1e4就够了,如果最后剩下一个大素数单独进行判断. 1 #include <cstdio> 2 #include <cmath> 3 #include <cstring&