来了没,王永亮
[此贴子已经被作者于2007-4-15 13:38:23编辑过]
雁无留踪之意,水无取影之心
Contest Problem E : The gamblers
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 67 Accepted: 16
Description
There are N gamblers,one day,they want to find the person who is the best.Each time,three of them have a match,and two of them lose the game.Sometimes two of them have a match may needed.There are a lot of gamblers,so they want the match as fewer as possible.Give the number of N,can you tell the number of matches.
Input
The input contains several test cases. Each case is specified by one positive integer n (0 < n <= 1000000000), indicating the number of players.
Output
For each test case, output a single line with the least number of matches.
Sample Input
3
4
5
Sample Output
1
2
2
第二题:
Contest Problem D : Mine again
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 17 Accepted: 6
Description
Typhoon likes playing a game named "Mine Sweeper". Have you ever played it ?
The game Minesweeper is played on an n by n grid. In this grid are hidden m mines, each at a distinct grid location. The player repeatedly touches grid positions. If a position with a mine is touched, the mine explodes and the player loses. If a position not containing a mine is touched, an integer between 0 and 8 appears denoting the number of adjacent or diagonally adjacent grid positions that contain a mine.
//这个地方是一个扫雷的图,复制不上来,知道是扫雷就可以了
Now , giving you the position of the mines , your task is to print the number of all grids.
Input
The first line of input contains a single positive integer n <= 100. The next n lines represent the positions of the mines. Each line represents the contents of a row using n characters: "*" indicates a mined position while "." indicates a position with no mine .
Input contains multiple test cases. Process to the end of file.
Output
Your output should represent the board.Grids that do not contain a mine should contain an integer between 0 and 8 , else print "*".
Separate output for subsequent test cases with a single blank line.
Sample Input
8
...**..*
......*.
***.*...
*.*.....
***.....
.....*..
...**.*.
.....*..
Sample Output
001**22*
233433*2
***3*211
*8*41100
***21110
23333*21
001**4*1
00123*21
第三题:
Contest Problem C : Joseph's problem
Time Limit: 5000 MS Memory Limit: 65536 K
Total Submit: 20 Accepted: 14
Description
The Joseph's problem is well known for us.There are N person stand in a circle,and the Mth person has to leave.Assume that we always start from the person 1,and give the number N and M,can you tell me who is the person that the last to leave.
Input
Input contains multiple test cases. For each test case,there is one line containing two integers N and M (1000>=N>M>1), where N represents the number of person and M means that every Mth is going to leave.
Output
For each test case, output a single line with the number of the person last to leave.
Sample Input
5 3
Sample Output
4
第四题:
Contest Problem B : How fast can I drive
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 24 Accepted: 4
Description
There are N city and M roads connect them,and each road is bidirectional with a number stand
the fastest speed you can drive.I want to go from city 0 to city N-1(1<=N<1000),if the car have to drive in a changeless speed,can you tell me the fastest speed I can drive.
Input
Input contains multiple test cases. For each test case,there is one line containing two integers N and M , where N represents the number of city and M represents the number of road.Then M lines follows,each line contain three integers A,B,Speed.It means the fastest speed between A and B is Speed.
Output
For each test case, output a single line with fastest speed .If you can't find a path from 0 to N-1,just output -1 in s single line.
Sample Input
3 3
1 2 5
2 3 5
1 3 4
4 4
1 2 8
2 3 5
2 4 7
3 4 7
Sample Output
5
7
第五题:
Contest Problem F : The problem with Tom
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 7 Accepted: 3
Description
One day,Tom's teacher give him a problem,give a number N(1<=N<=1000),it can be writen as a sum of some of positive integer.As N=s1+s2+s3+….But si must be the power of 2.Then Tom has to tell how many way are there can from N.If two sequences have the same number but different order,they consider as one.Tom is poor in math,so as his best friend,slove this problem for him.
Input
Input consists of multiple test cases. Eath case contain a number N which described as before.
Output
For eath number,output a number stand the number of different kinds of string.
Sample Input
2
5
Sample Output
2
4
第六题:
Contest Problem G : The problem with TomⅡ
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 6 Accepted: 2
Description
Another day,Tom's teacher give him one more problem,use three letter 't','h','e' to form a string with length of N.But 't' will not appear in adjacent position.Then the problem is to find the number of different kind of the string.Tom is poor in math,so as his best friend,slove this problem for him.
Input
Input consists of multiple test cases. Eath case contain a number N (1<=N<1000) stands the length of the string.
Output
For eath number,output a number stand the number of different kinds of string.
Sample Input
1
2
Sample Output
3
8
Hint
The number of output maybe so large that can exceed the range of long or double.
第七题:
Contest Problem H : Who is the best
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 18 Accepted: 2
Description
In every examnation,we all get a score given by our teacher,and we can say that the one who gets the highest score is the best.However,we can redefine another rule:there are n students, given the score array s[n]: s1,s2,s3...sn ,based on the ith num,we redefine the ith student's score by T[i]=|S1-Si|+|S2-Si|+…|Sn-Si|,so we can get another array T[n],you just need to output the highest result T[i].
Input
There are multiple test cases.In every case , there are a line with a integer n(1<=n<=100000000) representing the number of the students, the second line contains n integers representing the scores of the students.
Output
Output a line with the highest result.
Sample Input
3
1 2 3
Sample Output
3
第八题:
Contest Problem I : Help July
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 11 Accepted: 7
Description
July 特别喜欢吃苹果。一天他的朋友 fwish 送给他N个苹果,每个苹果的颜色都各有特色。
他马上想把这些苹果马上吃光,但是......
fwish 知道July 很聪明,所以这次她想难为一下July。她要July把这N个苹果通过她的规则归并成一堆,
要是能做到的话,就让他马上吃苹果。
July只好答应了。
fwish的规则如下:
1.所有苹果都已经标好号,按顺序排好,每个苹果都有个值。
2.每次只能合并相邻的两堆。
3.开始的时候每堆只有一个苹果。
4.合并得到新堆的值为合并之前两堆的值之和,该次合并的代价为新堆的值。
5.最后将所有苹果合并成一堆.
6.合并的总代价为每次合并的代价累加之和。
fwish 要求July 计算出总代价的最小值。 July想了半天也没想到一种方法来解决这个问题。
July 知道你是一个数学和计算编程机高手,于是他请求你帮助他,
因为 fwish 的规则没有说不能请别人帮忙。
Input
有多组数据,以 N = 0 结束。
每个CASE:
第一行包含一个数N(1<=N<=100),代表 苹果的个数 。
第二行有N个数,表示这N个苹果的值。
Output
每个CASE包含一行,输出N个苹果合并成一堆的最小得分。
Sample Input
4
13 7 8 16
Sample Output
87
第九题:
Contest Problem J : Money and Happy to BJF
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 14 Accepted: 2
Description
BJF 是一个建筑工地的工头,他现在遇到了一个问题需要他的工作秘书 你设计一个程序来解决他的问题。
问题是这样的:
现在 BJF 有一个工程学要做N个月,第i个月需要至少a[i]个工人。由于每个需要工人数不一样,所以他可以做合理安排(每个月辞退或雇佣一些工人,以便保证工程的正常进行),每个工人 每月工资为S,辞退一个工人要额外支付 F, 雇佣一个工人要额外支付 H;BJF希望完成工程花费 越少越好,并且在不影响花费的前提下最后剩下的工人越多越好(这样BJF最Happy )。
Input
包含多个CASE, 以 N = 0 结束。
每个CASE包含三行:
第一行一个N ( 1<= N <= 50 )代表 工程要N个月才能完成。第二行有三个数 H, S, F( 0 <= H, S, F <= 15; 第三行包含N个数 { a[1], a[2], ...,a[i], ..., a[n]; 0 <= a[i] <= 510 }
a[i]( 1 <= i <= N )代表第i个月至少要a[i]个工人。
Output
每个CASE 包含一行:最小花费和在最小花费前提下,剩下的最大工人数。以一个空格分开
Sample Input
2
1 1 1
1 1
Sample Output
3 1
第十题:
Contest Problem A : A math problem
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 46 Accepted: 1
Description
There are two sequeues of integer,can you tell me whether you can get the second from the first one through the operation as follows:
For S[i-1],S[i],S[i+1],you can get S[i-1]+s[i],s[i]-2*s[i],s[i+1]+s[i].
For example:
3 5 6 7
8 6 -11 18
Then ,from 3 5 6 7, we can get 8 -5 11 7 through the first operation on( 3 5 6 ),then we can get 8 6 -11 18 through the second one on ( -5 11 7 ),so the answer is YES;
Input
Input contains multiple test cases.For each test case,there is one line containing one integers N(3<=N<1000),
where N represents the number of integers of the sequence.Then two lines follows,each line with N integers,respectively.
Output
For each test case,if you can get the second sequence from the first one,output YES, or ouput NO.
Sample Input
4
3 5 6 7
8 6 -11 18
Sample Output
YES
终于搞出第7个
#include<stdio.h>
void main()
{
__int64 i,sum1,sum2,max,min,n,k;
while(scanf("%I64d",&n)!=EOF)
{
scanf("%I64d",&k);
sum1=sum2=k;
max=min=k;
for(i=1;i<n;i++)
{
scanf("%l64d",&k);
sum1+=k;
if(k>max)
max=k;
if(k<min)
min=k;
}
max=n*max-sum1;
min=sum1-min*n;
printf("%I64d\n",min>max?min:max);
}
}
[此贴子已经被作者于2007-4-16 13:25:37编辑过]
第一个到第三个简单
哈哈
#include<stdio.h>
void main()
{
long n,i,k;
while(scanf("%ld",&n)!=EOF)
{
printf("%ld\n",n/2);
}
}
#include<stdio.h>
void main()
{
char s[110][110];
int n,j,i;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%s",s[i]);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(s[i][j]!='*')
{
s[i][j]='0';
if(i-1>=0&&j-1>=0&&s[i-1][j-1]=='*')
s[i][j]++;
if(i-1>=0&&s[i-1][j]=='*')
s[i][j]++;
if(i-1>=0&&j+1<n&&s[i-1][j+1]=='*')
s[i][j]++;
if(j-1>=0&&s[i][j-1]=='*')
s[i][j]++;
if(j+1<n&&s[i][j+1]=='*')
s[i][j]++;
if(i+1<n&&j-1>=0&&s[i+1][j-1]=='*')
s[i][j]++;
if(i+1<n&&s[i+1][j]=='*')
s[i][j]++;
if(i+1<n&&j+1<n&&s[i+1][j+1]=='*')
s[i][j]++;
}
}
}
for(i=0;i<n;i++)
{
printf("%s\n",s[i]);
}
printf("\n");
}
}
#include<stdio.h>
#include<stdlib.h>
struct node
{
int i;
struct node *a;
struct node *b;
};
void main()
{
struct node *head,*q,*p;
int n,m,i;
while(scanf("%d %d",&n,&m)!=EOF)
{
i=1;
p=(struct node *)malloc(sizeof(struct node));
p->i=1;
head=p;
while(--n)
{
q=(struct node *)malloc(sizeof(struct node));
q->i=++i;
p->a=q;
q->b=p;
p=p->a;
}
p->a=head;
head->b=p;
i=0;
while(p->a!=p)
{
i++;
p=p->a;
if(i==m)
{
i=0;
q=p->b;
q->a=p->a;
free(p);
p=q->a;
p->b=q;
p=q;
}
}
printf("%d\n",p->i);
free(p);
}
}