标签:
能够参加这次比赛得了第一名,首先得感谢阳哥,谢谢你当初的帮助,让我在这一年进步这么大啊
但是我认为自己输给了自己,没有在最后的关头做最正确的决定!!!!!
因为最后一题比赛结束的四十分钟前就知道怎么做了,却没有A掉
附上一榜单:(大牛勿笑)
1001
BACDBACDBAACCCDDDBCDBDCBABBBBDDDDAAACCAC BACDBACDBAACCCDDDBCDBDCBABBBBDDDDAAACCAD 39 BACDBACDBAACCCDDDBCDBDCBABBBBDDDDXXXCCAC BACDBACDBAACCCDDDBCDBDCBABBBBDDDDAAACCAC 39 BACDBACDBAACCCDDDBCDBDCBABBBBDDDDXXXCCAC BACDBACDBAACCCDDDBCDBDCBABBBBDDDDAAACCAC 36 END
Absolute Possible Wrong
#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;
}
95 396 28 4 40 0
95 45 20 0 396 162 12 2 28 16 6 4 40 0
#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;
}
4 0 2 0 6 3 1 3 7 5 1 10 3 5 -2 2 4 -2 2 -1
273.20 210.48
#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;
}
2 010 111 10 111 89 16 aB 10 10 000 00
1001 200 BB 0
#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
3 1 2 3 4 1 2 3 4
Case #1: 3 Case #2: 6
#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
34 201 2098765413 1717171717171717171717171717171717171717171717171718 0
1 0 1 0
#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
1 6
Case #1:1
#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了那一道题目
因此又一次深刻的理解了,在最后的关头冷静下来才是赢家,这次我认为自己输给了自己
标签:
原文地址:http://blog.csdn.net/summer__show_/article/details/51347560