小小赛事

能够参加这次比赛得了第一名,首先得感谢阳哥,谢谢你当初的帮助,让我在这一年进步这么大啊

但是我认为自己输给了自己,没有在最后的关头做最正确的决定!!!!!

因为最后一题比赛结束的四十分钟前就知道怎么做了,却没有A掉

附上一榜单:(大牛勿笑)

1001

Judge

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 72   Accepted Submission(s) : 11

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

LASANQQ最近做了一套JAVA选择题试卷,这套试卷一共有40道选择题,每道选择题都有ABCD四个选项,每道题的分值为1分。

这一天他把做好的试卷交给了有标准答案的UEFI,但是由于一些原因,LASANQQ的试卷上的一些选择题选项模糊不清了,但是UEFI也给出了自己批改的结果,现在,请聪明的你编写一个程序判断下UEFI的批改情况。

Input

有多组输入,每组输入占三行。每行有一串四十个字符的字符串,第一行输入字符串S1,S1表示LASANQQ已经模糊的答案,字符串包含’A’,’B’,’C’,’D’ ,’X’五个字符一个或多个,’X’表示已经模糊的选项,第二行输入字符串S2,S2表示标准答案,包含’A’,’B’,’C’,’D’四个字符一个或多个。第三行输入一个整数N(0<=N<=40),N就是UEFI给出的分数。输入以”END”作为结束,你的程序不处理这行。

Output

如果通过你的判断,UEFI给出的分数一定是正确的,输出”Absolute”;如果通过你的判断,UEFI给出的分数可能正确,输出”Possible”;假如通过你的判断,UEFI给出的分数一定是错误的,输出”Wrong”。

Sample Input

BACDBACDBAACCCDDDBCDBDCBABBBBDDDDAAACCAC
BACDBACDBAACCCDDDBCDBDCBABBBBDDDDAAACCAD
39
BACDBACDBAACCCDDDBCDBDCBABBBBDDDDXXXCCAC
BACDBACDBAACCCDDDBCDBDCBABBBBDDDDAAACCAC
39
BACDBACDBAACCCDDDBCDBDCBABBBBDDDDXXXCCAC
BACDBACDBAACCCDDDBCDBDCBABBBBDDDDAAACCAC
36
END

Sample Output

Absolute
Possible
Wrong

Author

FlushHip

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

char a[55],b[55];
int num;

int main()
{
    while(scanf("%s",a)!=EOF)
    {
        if(!strcmp(a,"END"))
            return 0;
        scanf("%s",b);
        scanf("%d",&num);

        int temp=0;
        int flag=0;
        for(int i=0;i<40;i++){
            if(a[i]=='X')
                flag++;
            else if(a[i]==b[i])
                temp++;
        }

        if(flag==0&&temp==num)
            puts("Absolute");
        else if(flag&&(temp<=num&&num<=(temp+flag)))
            puts("Possible");
        else
            puts("Wrong");

    }

    return 0;
}

1002

Digit Solitaire

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 22   Accepted Submission(s) : 7

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

Despite the glorious fall colors in the midwest, there is a great deal of time to spend while on a train from St. Louis to Chicago. On a recent trip, we passed some time with the following game.

We start with a positive integer S. So long as it has more than one digit, we compute the product of its digits and repeat. For example, if starting with 95, we compute 9 × 5 = 45. Since 45 has more than one digit, we compute 4 × 5 = 20. Continuing with 20,
we compute 2 × 0 = 0. Having reached 0, which is a single-digit number, the game is over.

As a second example, if we begin with 396, we get the following computations:

3 × 9 × 6 = 162

1 × 6 × 2 = 12

1 × 2 = 2

and we stop the game having reached 2.

Input

Each line contains a single integer 1 ≤ S ≤ 100000, designating the starting value. The value S will not have any leading zeros. A value of 0 designates the end of the input.

Output

For each nonzero input value, a single line of output should express the ordered sequence of values that are considered during the game, starting with the original value.

Sample Input

95
396
28
4
40
0

Sample Output

95 45 20 0
396 162 12 2
28 16 6
4
40 0

Author

KZF

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

int a[10];
int pos;
int deal(int n)
{
    pos=0;
    int ans=1;
    while(n)
    {
        ans=ans*(n%10);
        n=n/10;
    }
    return ans;
}

int main()
{
    int num;
    while(scanf("%d",&num),num!=0)
    {
        while(num>9)
        {
            printf("%d ",num);
            num=deal(num);
        }
        printf("%d\n",num);

    }
    return 0;
}

1003

积分

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 33   Accepted Submission(s) : 7

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

你还记得如何积分嘛,现在,聪明的你一定能编一个程序计算出一个多项式f(x)的积分。

Input

有多组数据,输入以-1结束,不超过50组。每组数据有三行。

第一行输入一个整数,代表多项式f(x)的维数n(n < 8)

第二行有n+1个实数,第i个数mi代表 x^(i-1) 的系数(mi < 10),mi最多有两位小数。

第三行有两个数,第一个数为积分下限a,第二个数为积分上限b(-10< a <= b<10),a,b最多有两位小数。

所有同行的多个数字间都由一个空格隔开。

Output

输出占一行,即积分值,结果保留两位小数。

Sample Input

4
0 2 0 6 3
1 3
7
5 1 10 3 5 -2 2 4
-2 2
-1

Sample Output

273.20
210.48

Author

XC

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<algorithm>
using namespace std;

int n;
double a,b;
double num[15];

double power(double x,int y)
{
    double temp=1;
    for(int i=1;i<=y;i++)
        temp=temp*x;

    return temp;
}

int main()
{
    while(scanf("%d",&n)!=EOF)
    {
        if(n==-1)
            return 0;

        for(int i=0;i<=n;i++)
            scanf("%lf",&num[i]);
        scanf("%lf%lf",&a,&b);
        for(int i=0;i<=n;i++)
            num[i]=num[i]*(1/((double)(i+1)));

        double ans_a=0;
        double ans_b=0;
        for(int i=0;i<=n;i++){
            ans_a+=num[i]*power(a,i+1);
            ans_b+=num[i]*power(b,i+1);
        }
        printf("%.2lf\n",ans_b-ans_a);
    }

    return 0;
}

1004

Adding

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 1   Accepted Submission(s) : 1

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

Jonn have a difficult problem to solve, the problem is that Adding. That means: “give you two N’s base number, and your task is calculating the sum of the two numbers”. You may think the problem is very easy! And do it now.

Input

Input consists of multiple problem instances, end of EOF. Each instance consists of N, where 2 <= N <=16, and two strings, the string is the number(the string makes up "0~9,a~f,A~F"), where the lenth of number no more than 10^1000.

EOF is the end of input, for example "while(scanf("%d",&n)!=EOF)"

Output

For each problem instance, you should output one line containing the sum of the two numbers.if the string of ans has ‘a-f’,print the uppercase. Take care that the string will not have any leading zeros.

Each instance output a blank line.

Sample Input

2
010
111
10
111
89
16
aB
10
10
000
00

Sample Output

1001

200

BB

0

Author

FlushHip

#include<string.h>
#include<stdio.h>
#include<algorithm>
using namespace std;

void print(int x)
{
    if(x==15)
        printf("F");
    else if(x==14)
        printf("E");
    else if(x==13)
        printf("D");
    else if(x==12)
        printf("C");
    else if(x==11)
        printf("B");
    else if(x==10)
        printf("A");
    else
        printf("%d",x);
}

int main()
{
    int n;
    char a[1010],b[1010];
    while(scanf("%d",&n)!=EOF)
    {
        getchar();
        scanf("%s%s",a,b);
        int len1=strlen(a);
        int len2=strlen(b);
        reverse(a,a+len1);
        reverse(b,b+len2);
        int maxlen=max(len1,len2);

        int ans[1010];
        memset(ans,0,sizeof(ans));
        for(int i=0;i<len1;i++){
            if(a[i]<='9'&&a[i]>='0')
                ans[i]+=a[i]-'0';
            else if(a[i]<='F'&&a[i]>='A')
                ans[i]+=a[i]-'A'+10;
            else if(a[i]<='f'&&a[i]>='a')
                ans[i]+=a[i]-'a'+10;
        }
        for(int i=0;i<len2;i++){
            if(b[i]<='9'&&b[i]>='0')
                ans[i]+=b[i]-'0';
            else if(b[i]<='F'&&b[i]>='A')
                ans[i]+=b[i]-'A'+10;
            else if(b[i]<='f'&&b[i]>='a')
                ans[i]+=b[i]-'a'+10;
        }

        for(int i=0;i<maxlen;i++){
            ans[i+1]+=ans[i]/n;
            ans[i]=ans[i]%n;
        }

        int flag=1;
        for(int i=maxlen;i>=0;i--){
            if(flag&&ans[i]==0)
                continue;
            else{
                print(ans[i]);
                flag=0;
            }
        }
        if(flag)
            printf("0");
        puts("\n");

    }

    return 0;
}

1005

最强战斗力

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 10   Accepted Submission(s) : 0

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

X战队有N特种作战人员。现在他们空降到了一块地上,刚好他们呈一个圆形的队形排列,收尾相接。现在X战队的大BOSS要从这些队员中挑选一些队员来执行特种作战,这些队员都有一个战斗力参数来代表他们的战斗力,但是,X战队有一个这样的魔咒,如果BOSS挑选队列中相邻的两个队员,这两个队员会产生矛盾,因此不能挑选站在一起的两个队员。现在BOSS要挑选出一只具有最强战斗力的小队,要你编程告诉BOSS最强战斗力最大可能是多少。

Input

有多组测试数据,输入以EOF作为结束。

每组数据的第一行输入N,N<1000。下一行输入N个整数,代表着第i个队员有W的战斗力。注意,第一个队员和最后一个队员是相邻的。

EOF结束,你可以在你的代码中这么写:while(scanf("%d",&n)!=EOF)

Output

输出最强战斗力,具体格式见Sample Output。

Sample Input

3
1 2 3
4
1 2 3 4

Sample Output

Case #1: 3
Case #2: 6

Author

FlushHip

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

#define MAX(a,b) ((a)>(b)? (a):(b))

const int M=1000+5;

int dp1[M],dp2[M];

int n;

int work(int a[])
{
	int dp[M];
	dp[0]=a[0];
	dp[1]=MAX(a[0],a[1]);

	for(int i=2;i<n-1;i++)
		dp[i]=MAX(dp[i-1],dp[i-2]+a[i]);
	return dp[n-2];
}

int main()
{
	int K=1;
	while(~scanf("%d",&n)){
		memset(dp1,0,sizeof(dp1));
		memset(dp2,0,sizeof(dp2));

		scanf("%d",&dp1[0]);
		if(n==1){
			printf("Case #%d: %d\n",K++,dp1[0]);
			continue;
		}
		for(int i=1;i<n-1;i++)
			scanf("%d",&dp1[i]),
			dp2[i-1]=dp1[i];
		scanf("%d",&dp2[n-2]);

		int ans1=work(dp1);
		int ans2=work(dp2);

		printf("Case #%d: %d\n",K++,MAX(ans1,ans2));
	}
	return 0;
}

1006

数字整除

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 24   Accepted Submission(s) : 3

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。

例如,34是17的倍数,因为3-20=-17是17的倍数;201不是17的倍数,因为20-5=15不是17的倍数。输入一个正整数n,你的任务是判断它是否是17的倍数。

Input

输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=10^100),表示待判断的正整数。n=0表示输入结束,你的程序不应当处理这一行。

Output

对于每组测试数据,输出一行,表示相应的n是否是17的倍数。1表示是,0表示否。

Sample Input

34
201
2098765413
1717171717171717171717171717171717171717171717171718
0

Sample Output

1
0
1
0

Author

KZF

#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std;

int main()
{
    char a[1000];
    memset(a,'0',sizeof(a));
    while(~scanf("%s",a))
    {
        int len=strlen(a);
        if(len==1&&a[0]=='0')
            return 0;
        reverse(a,a+len);
        a[len]='0';
        a[len]='0';

        int temp=(a[0]-'0')*5;
        int flag;
        for(int i=1;i<len;i++){
            flag=(a[i]-'0')+(a[i+1]-'0')*10+(a[i+2]-'0')*100;
            flag=flag-temp;
            a[i]=flag%10+'0';
            a[i+1]=(flag/10)%10+'0';
            a[i+2]=flag/100+'0';

            temp=(a[i]-'0')*5;
        }

        if(flag%17)
            printf("0\n");
        else
            printf("1\n");
        memset(a,'0',sizeof(a));
    }
    return 0;
}

另解:(运用的不是题目的中方法,而是同余求模定理)

#include<stdio.h>
#include<string.h>
int main() {
  char s[200];
  while(scanf("%s", &s) == 1) {
    if(!strcmp(s, "0")) break;
    int m = 0;
    for(int i = 0; i < strlen(s); i++)
      m = (m*10+s[i]-'0')%17;
    printf("%d\n", m==0?1:0);
  }
  return 0;
}

1007

不要落水!

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 26   Accepted Submission(s) : 1

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

有一名自行车竞速爱好者B想围绕一个湖泊进行骑行训练,但是如果稍不注意可能会刹不住车掉进湖泊,于是B想知道这个湖泊有多少个地方会让他在刹不住车的情况下落水。

B现在求助于数学几何能力非常好的你来帮忙,让你编写一个程序找出这些地方的数目。

为便于构造湖泊的地图,每个湖泊将由n个拐角点组成,并且每个拐角一定是直角,如果能够以当前的骑行方向冲出该拐角点,则该拐角点为一个易落水处。

你的导师拥有所有可进行骑行训练的湖泊的地图,为了考验你的几何能力,只给了你一个数据——拐角点的个数。

Input

第一行为测试数据的组数T(T<=500)。

每组测试数据占一行,即拐角点的个数n(4<=n<10000000),所有输入数据都为整数。

Output

每组测试数据输出占一行,输出易落水的结点个数,输出格式见sample output。

Sample Input

1
6

Sample Output

Case #1:1

Author

XC

#include<stdio.h>

int main()
{
    int n;
    int coun=1;
    scanf("%d",&n);
    while(n--)
    {
        int temp;
        scanf("%d",&temp);
        printf("Case #%d:%d\n",coun++,temp/2-2);
    }

    return 0;
}

这此只是一次小的比赛,希望自己可以再接再厉,能够再更好的平台上面取得更好的成绩

总结比赛之前的种种:

自己在poj水题到两百多,hdu水题六十多道后就不想再继续水题目,而是复习之前自己所写的代码,并且深入理解dp  搜索  的精髓

下面附上一张poj做过的题目集合照,大牛勿笑!!!!

在之前的学习中,枯燥而且相当乏味,只有当A掉一个题目的时候才是自己最开心的时候。能够坚持每天写代码看代码两个小时已属不易啊!!!而我花大量时间在编程上面后,紧接着就是对代码的恶心

所以需要劳逸结合,不能够只是写代码,还应该看点别的书籍,提高自己的精神境界,并且提高自己其他方面的能力。编程不是一蹴而就

但是话又说回来了,算法如果不花大量时间在上面你怎么可能取得好的成绩呢??!!!

比赛中:

自己心态有点不好,开始的时候题目测试有个小问题,交上去一直WA,导致最后半个小时把公式退出来后居然还没有A了那一道题目

因此又一次深刻的理解了,在最后的关头冷静下来才是赢家,这次我认为自己输给了自己

时间: 2024-11-01 05:28:58

小小赛事的相关文章

小小记事本

页面很简单,是这个样子的.在点击tableviewCell 的时候, 右面的view可以自动弹出,在该view中输入以及显示输出,将该view拖回到右边时,刷新tableview.在重新打开程序的时候内容也仍然在.下面说一下实现过程吧 一.判断进入页面 即判断是否存在plist文件以及版本号是否相同,在AppDelegate.m中写入 -(void)addFirstPage { UIStoryboard *storyboard = [UIStoryboard storyboardWithName

当VR踏入足球赛事会是如何?用数学运算又是如何?

我们可以一起想像一下开赛后第一球进网时,所有人的VR 装置全切换到进球球员的视角,剎那间观众从前锋眼中看见球门,接着画面切换至守门员视角,最后停在球门后方视野.没有VR 装置的观众则透过智能型手机投影3D 全像,回放射门精彩画面:而当球员冲向场边与球迷一同欢庆时,植入球员的装备甚至是皮肤中的生物辨识传感器则随时将球员的体能状态回报给球队经理.(部分文章内容:SBFPLAY胜博发直播 http://www.cf.org.tw/) 上述内容听起来或许太不真实,但回顾20.30 年前的足球比赛即可发现

18TH赛事管理

赛事管理者 项目psp: 一.计划 估计这个任务需要7天时间 二.开发 1.需求分析 作为一个赛事管理者,我希望知道每场比赛的队伍得分和积分情况,以便给每队进行排名. 2.生成设计文档 查询出每场得分情况,总比分,并计算出排名 3.设计复审 用时2小时 4.代码规范 使用VS2010代码规范 5.具体设计 URL活动图如下: 6.界面设计如图             7.具体编码 8.代码复审 9.测试 三.报告 1.测试报告 1小时 2.计算工作量 四天 3.总结 做程序相当不易,连接数据库有

HDU 4517 小小明系列故事---游戏的烦恼 (模拟题)

问题描述 : 小小明最近在玩一款游戏,它由n*m大小的矩阵构成,矩阵上会随机产生一些黑色的点,这些点它们可能会连在一起也可能会分开,这些点的个数没有限制,但是每个1*1方格中最多只可能有一个黑点产生.游戏要求玩家以最短的时间用x*y的小矩阵覆盖这个大矩阵,覆盖的要求有以下2点: 1.  x*y大小的小矩阵内必须有x*y个黑点. 2. 多个小矩阵可以重叠,但是每个小矩阵放置的位置必须是独一无二的,即不同的小矩阵内的黑点不能完全相同.例如1*2的矩阵可以横着放,也可以竖着放,这两种方法是不同的,即使

小小小女神啊~~~

丹麦皇家芭蕾舞团小小小女神~~ 路人甲:"看到丹麦女神之后,我再也不敢随便叫别人是女神." 路人乙:"人世间原来还有长成这样的女孩子!"" 路人丙:"瞬间觉得自己见识少了."  小小小女神啊~~~,布布扣,bubuko.com

关于游戏[小小枪战:反恐精英]的欺骗作假行为

游戏名称 :小小枪战:反恐精英/Little Gunfight:Counter-terror 消费者不是傻瓜! 游戏里面的联网对战功能就是玩家与电脑对战.我只能说,这个游戏公司的AI做的不错. 证据1:源代码 a.a.a.java 里面有一个机器人的玩家名称列表,什么 "极品黑木耳" "爆头王子" "孤与谁共" ...(玩过的人都懂) 证据2:源代码 a.a.b.g.java 里面有一个敏感词列表,就是玩家起名字的时候不允许有敏感词.什么 &qu

小小六的前端学习心得

打算写这篇文章已经好久了,但是文采不行,不知道如何下笔,今天终于鼓起勇气用我拙劣的作文水平来讲述一下这段时间我学习前端开发的心得. 先从我的专业说起.我本人是学计算机的.全名是叫计算机科学与技术(软件方向),学校虽然是一个211学校,学习成绩也还行,但是对于编程这一块,真的是很弱很弱.所以我对计算机编程真正的学习是从实习这段时间开始的.说到这里,我必须得感谢带我进入前端的学长.因为他我才能在今天坐在这里写这篇学习心得. 所以,首先最好是有一个愿意耐心的指导你学习的人,也就是一个好的师傅.他能根据

STM32之输入捕获以及小小应用(库)

五一之际,先祝大家五一快乐.其实快乐很简单,工作的人有假放,学习的人也有假放,像我,有假放才有更多的时间学自己想学的东西.51假期学51,可惜没有32假期呀.好了..言归正传,大家听过吸星大法吧..在这里.智商和情商比我高的人估计又知道我要说什么了..没错了..今天我们来了解"葵花宝典"第STM32篇之输入捕获,也就是上文所讲的"吸星大法", 那输入捕获可以用来干嘛呢??这个问题问的好,输入捕获可以用来测量脉冲宽度或者测量频率,假如要捕获一个脉冲的高电平脉宽,我们要

少少、小小

我爱喝茶,每次放很多茶叶,加满水-好苦呀,有时候忘了,水就凉了,就皱着眉,喝掉部分凉的,加点水,继续喝,暖了点,但仍旧是苦的 妈妈教导:你可以放少少的茶叶,少少的水......等想喝了,加点水 ********************************************************* 今晚我打算看一大摞资料,呵呵,目标very 宏伟! 接个电话,发个呆,看看新闻,调侃一番,手里仍旧捧着未翻页的文献或者书! 妈妈教导:你可以拿铅笔画一下要看的小小部分的内容,看完再画下一个