热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

洛谷试炼场新手村

洛谷试炼场---新手村在线测评地址https:www.luogu.com.cntrainingmainpage洛谷的第一个任务1.p1001ABProblem难度:

洛谷试炼场---新手村

在线测评地址https://www.luogu.com.cn/training/mainpage


洛谷的第一个任务

 

1.p1001 A+B Problem
难度:入门难度
考点:输入,输出 ,整数四则运算  

适用:小学生

#include
int main(){int a,b;scanf("%d%d",&a,&b);printf("%d\n",a+b);return 0;
}

2.p1421 小玉买文具

难度:入门难度
考点:输入,输出,整数的四则运算
适用:小学生

#include
int main(){
    int a,b,c;
    scanf("%d%d",&a,&b);
    c=(a*10+b)/19;
    printf("%d\n",c);
    return 0;
}
3.p1425 小鱼的游泳时间 类似 P1421 小玉买文具
难度:入门难度
考点:输入,输出 ,整数四则运算,取整,取模  
适用:小学生

 

#include
int main(){int a,b,c,d;int e,f,g,h,i;scanf("%d%d%d%d",&a,&b,&c,&d);e=a*60+b;f=c*60+d;g=f-e;h=g/60;i=g%60;printf("%d %d\n",h,i);return 0;
}

 


顺序与分支


4.p1422  小玉家的电费
难度:入门难度
考点:输入,输出 ,浮点数计算,if else语句  

 

适用:小学生

 

#include
int main(){int a;float b;scanf("%d",&a);if(a<=150)b=a*0.4463;else if(a>=151&&a<=400)b=150*0.4463+(a-150)*0.4663;else if(a>400)b=150*0.4463+(400-150)*0.4663+(a-400)*0.5663;printf("%.1f\n",b);return 0;
}

5.p1085 不高兴的津津 
难度:入门难度
考点:输入,输出 ,整数四则运算,数组,找最大值  
适用:小学生
技巧:大于等于8,痛苦指数为a+b,否者为0

#include
int main(){int a,b,c[8],i,max,k;for(i=1;i<=7;i++){scanf("%d%d",&a,&b);if(a+b>=8)c[i]=a+b;elsec[i]=0;}max=0;k=0;for(i=1;i<=7;i++)if(max}

6.NOIP2004 提高组 复赛 save 津津的储蓄计划

1.题目对程序知识要求比较简单,主要考思考。

2.需要开sheng(剩),cun(存)两个变量对每个月的结余进行处理。

3.两个关键点,一是cun*1.2不合适,因cun是整数,不能与浮点直接相乘,可以采用cun/10*12。

4.二是,别忘了手中的钱还要加上12月剩的钱,即cun/10*12+sheng。

5.样例通过后,提交AC。

耗时:15分钟

难度:简单

附上AC代码,编译环境Dev-C++4.9.9.2

//2004 save
#include
int ys[13];
int main(){
    int i;
    int sheng,cun;
    int flag;
    for(i=1;i<=12;i++)
        scanf("%d",&ys[i]);
    sheng=0;
    cun=0;
    flag=0;
    for(i=1;i<=12;i++){
        sheng=sheng+300-ys[i];
        if(sheng<0){
            flag=1;
            break;
        }
        if(sheng>=100){
            cun=cun+(sheng/100)*100;
            sheng%=100;            
        }
    }
    if(flag)
        printf("%d\n",i*(-1));
    else
        printf("%d\n",cun/10*12+sheng);
}

 

 

 


循环!循环!循环!

7.//p1008 三连击
//难度:入门难度
//考点:输入,输出 ,整数四则运算,取整,取模  
//适用:小学生
//小技巧:分离出每个数的个十百位,其中 1*2*3*4*5*6*7*8*9=362880 1+2+3+4+5+6+7+8+9=45能判定数字是否重复
//方法:枚举
#include
int main(){
    int a,b,c;
    int x[10];
    int m,n,i;
    for(a=123;a<=333;a++){
        b=a*2;
        c=a*3;
        x[1]=a%10;
        x[2]=a/10%10;
        x[3]=a/100;
        x[4]=b%10;
        x[5]=b/10%10;
        x[6]=b/100;
        x[7]=c%10;
        x[8]=c/10%10;
        x[9]=c/100;
        m=1;
        n=0;
        for(i=1;i<=9;i++)
            m*=x[i];
        for(i=1;i<=9;i++)
            n+=x[i];
        if(m==362880&&n==45)//1*2*3*4*5*6*7*8*9 1+2+3+4+5+6+7+8+9//笔误,写成3628880查了会
            printf("%d %d %d\n",a,b,c);
    }
}
p1008 三连击

难度:入门难度
考点:输入,输出 ,整数四则运算,深度优先算法  
适用:小学生

#include
#include
int a[10];
int visited[10];
int n=9;
void dfs(int step){int b,c,d;int i;b=a[1]*100+a[2]*10+a[3];c=a[4]*100+a[5]*10+a[6];d=a[7]*100+a[8]*10+a[9];if(step==n+1){if(c==2*b&&d==3*b)printf("%d %d %d\n",b,c,d);return;}for(i=1;i<=9;i++)if(visited[i]==0){a[step]=i;visited[i]=1;dfs(step+1);visited[i]=0;}
}
int main(){memset(visited,0,sizeof(visited));dfs(1);return 0;
}

8.p1035 级数求和 
难度:入门难度
考点:输入,输出 ,整数、浮点数运算,  
适用:小学生 
陷阱:此题写得不好,容易超时 
感悟:测试 12时,已经反应很慢了,比较忐忑. 提交果然超时。本题的特点是容易测试,发现问题,就需要找出超时的问题,进行改进。

 

#include
int main(){int k;int i;double ans;scanf("%d",&k);ans=1;i=1;while(1){if(ans>k)break;i++;ans+=1.0/i;}printf("%d\n",i);return 0;
}

9.p1307 数字反转
难度:入门难度
考点:输入,输出 ,取整,取模,分离出个十百千万位数,数组  
适用:小学生
陷阱:如9000,反转后是9,不容易想到。

 

#include
int main(){int n;int a[20];int top;int flag;int i,j;scanf("%d",&n);if(n==0){//n=0处理 printf("0\n");return 0;}if(n>0)//大于0 flag=1;else{//小于0 flag=-1;n*=-1;} top=-1;while(n){top++;a[top]=n%10;n/=10;}if(flag==-1)printf("-");j=0;while(a[j]==0&&j<=top)j++;for(i=j;i<=top;i++)printf("%d",a[i]);return 0;
}

//p1307 数字反转
//难度:入门难度
//考点:输入,输出 ,整数四则运算,取整,取模  
//适用:小学生
#include
int main(){
    int n;
    int ans=0;
    scanf("%d",&n);
    if(n<0){
        printf("-");
        n=-n;
    }
    while(n){
        ans*=10;
        ans+=n%10;
        n/=10;
    }
    printf("%d\n",ans);
    return 0;
}

10.p1423 小玉在游泳

难度:入门难度
考点:输入,输出 ,浮点数计算  
适用:小学生

 

#include
int main(){float x;int i;float step;float ans;scanf("%f",&x);i=1;step=2;ans=step;while(ans}

11.p1424 小鱼的航程(改进版)
难度:入门难度
考点:输入,输出 ,取模  
适用:小学生
陷阱:结束时间是n+x-1

#include
int main(){int x,n;int i;int ans;int end;scanf("%d%d",&x,&n);ans=0;end=n+x;for(i=x;i}

12.p1980 计数问题 
难度:入门难度
考点:输入,输出 ,取整,取模,分离出整数的个十百千万  
适用:小学生

 

#include
int cal(int a,int x){int ans;ans=0;while(a){if(a%10==x)ans++;a/=10;}return ans;
}
int main(){int n,x;int i;int ans;scanf("%d%d",&n,&x);ans=0;for(i=1;i<=n;i++)ans+=cal(i,x);printf("%d\n",ans);return 0;
}

 

 


数组

13.p1046 陶陶摘苹果 
难度:入门难度
考点:输入,输出 ,整数四则运算,数组 
适用:小学生
感悟:菜题

 

#include
int main(){int h[10+10];int i;int t;int count=0;for(i=0;i<10;i++)scanf("%d",&h[i]);scanf("%d",&t);for(i=0;i<10;i++)if(t+30>=h[i])count++;printf("%d\n",count);return 0;
}

14.p1047 校门外的树
难度:入门难度
考点:输入,输出 ,整数数组操作  
适用:小学生

注意:过大的数组要开到main函数的外面

int a[10000+10];
#include
int main(){int L,m;int i,j,start,end;int remain;scanf("%d%d",&L,&m);for(i=0;i<=L;i++)a[i]=1;for(i=0;i}

15.p1427 小鱼的数字游戏
难度:入门难度
考点:输入,输出 ,一维数组操作  
适用:小学生

#include
int a[100+10];
int main(){int v;int count=0;int i;scanf("%d",&v);while(v){a[count]=v;count++;scanf("%d",&v);}printf("%d",a[count-1]);for(i=count-2;i>=0;i--)printf(" %d",a[i]);printf("\n");return 0;
}

16.p1428 小鱼比可爱
难度:入门难度
考点:输入,输出 ,一维数组操作  
适用:小学生
#include
#include
int a[1000+10];
int b[1000+10];
int main(){
    int n;
    int i,j;
    memset(b,0,sizeof(b));
    scanf("%d",&n);
    for(i=0;i         scanf("%d",&a[i]);
    for(i=0;i         for(j=i+1;j             if(a[i]                 b[j]++;
    printf("%d",b[0]);
    for(i=1;i         printf(" %d",b[i]);
    printf("\n");
    return 0;

}

 


简单字符串

17.p1055 ISBN号码
难度:入门难度
考点:输入,输出 ,字符串,字符转数字,数字转字符  
适用:小学生
注意:过大的数组要开到main函数的外面。
小技巧:要设置一个计数变量
陷阱:没注意%11,结果可能是0,1,2,3,4,5,6,7,8,9,10 10是两位数,题目太简单了,容易漏看:所得的余数即为识别码,如果余数为10,则识别码为大写字母X

#include
int main(){char s[20];int ans;scanf("%s",s);ans=(s[0]-&#39;0&#39;)*1+(s[2]-&#39;0&#39;)*2+(s[3]-&#39;0&#39;)*3+(s[4]-&#39;0&#39;)*4;ans+=(s[6]-&#39;0&#39;)*5+(s[7]-&#39;0&#39;)*6+(s[8]-&#39;0&#39;)*7+(s[9]-&#39;0&#39;)*8+(s[10]-&#39;0&#39;)*9;ans%=11;if(ans==10)if(s[12]==&#39;X&#39;)printf("Right\n");else{s[12]=&#39;X&#39;;printf("%s\n",s);}else if(ans==s[12]-&#39;0&#39;)printf("Right\n");else{s[12]=ans+&#39;0&#39;;printf("%s\n",s);}return 0;
}

18.p1200 你的飞碟在这儿
难度:入门难度
考点:输入,输出 ,字符串操作,字符转数字,取模  
适用:小学生

#include
#include
int main(){char hui[10],dui[10];int h,d;int hlen,dlen;int i;scanf("%s%s",hui,dui);hlen=strlen(hui);dlen=strlen(dui);h=1;d=1;for(i=0;i}

19.//p1308 统计单词数  
//难度:普及-
//考点:输入,输出 ,含空格字符串读取  
//适用:小学生
//注意:过大的数组要开到main函数的外面。
//陷阱:题目比较刁钻,第二行提供的字符串,开始部分也可以是空格,真是难以想象啊,测试数据1,8就是。

#include
#include
#include
char s1[20];
char s2[1000000+10];
int main(){int count=0;char c;int i,j;int s1len,s2len;int flag;int num,k;scanf("%s",s1);//字符串s2读取,比较费力 while((c=getchar())!=EOF)if(c!=&#39;\r&#39;&&c!=&#39;\n&#39;)s2[count++]=c;while(!isalpha(s2[count-1]))count--;s2[count]=&#39;\0&#39;;s1len=strlen(s1);s2len=strlen(s2);//s1,s2字符串,转化成小写 for(i=0;i=&#39;A&#39;&&s1[i]<=&#39;Z&#39;)s1[i]=&#39;a&#39;+s1[i]-&#39;A&#39;;for(i=0;i=&#39;A&#39;&&s2[i]<=&#39;Z&#39;)s2[i]=&#39;a&#39;+s2[i]-&#39;A&#39;;num=0;for(i=0;i0)printf("%d %d\n",num,k);elseprintf("-1\n");return 0;
}

20.//p1553 数字反转(升级版)
//难度:普及-
//考点:输入,输出 ,字符串处理,字符查找,字符串反转  
//适用:小学生
//小技巧:输出%技巧 %%
//陷阱:陷阱,输出应该用字符串,若用整数,容易越界。
//附上该题测试点9奇葩的输入输出数据额:1390000.00000000  931.0
//附上该题测试点12奇葩的输入输出数据额:000000000/8213 0/3128
//感悟:升级版题目很难做,奇葩数据特别多。似乎不按常理出牌
 

#include
#include
char s[100],s2[100],s3[100],t[100];
void fun(char *a){int i,j,len,b;char t[100];len=strlen(a);if(len==1)return;strcpy(t,a);i=0;j=0;while(t[i]==&#39;0&#39;)i++;while(t[i]!=&#39;\0&#39;){a[j]=t[i];i++;j++;}a[j]=&#39;\0&#39;;len=strlen(a);if(len==0){a[0]=&#39;0&#39;;a[1]=&#39;\0&#39;;}
}
int main(){int len;int i,j,m;int flag;//整0.1/2%3int k;scanf("%s",s);len=strlen(s);flag=0;for(i=0;i}

 

21.//p1598 垂直柱状图
//难度:普及-
//考点:输入,输出 ,字符串读取,字符转数字,数字转字符,矩阵读写  
//适用:小学生
//陷阱:Dev-C++4.9.9.2竟无数组越界提醒 ,查了好半天
 

#include
#include
int a[100];//数组开的太小,越界,查了好半天a[50]
char b[100][100];//数组开的太小,越界,查了好半天b[50][50]
int main(){char c;int max,i,j;memset(a,0,sizeof(a));while((c=getchar())!=EOF){if(c>=&#39;A&#39;&&c<=&#39;Z&#39;)a[c-&#39;A&#39;]++;}max=0;for(i=0;i<26;i++)if(max}

22.p1914 小书童---密码
难度:入门难度
考点:输入,输出 ,字符串,字符处理,取模  
适用:小学生

 

 

#include
#include
char s[1024];
int main(){int n;int i;int len;scanf("%d%s",&n,s);len=strlen(s);for(i=0;i}

 


过程函数与递归

23.//p1028 数的计算
//难度:普及-
//考点:输入,输出 ,递归  
//适用:小学生
//小技巧:先将各种情况打印出,之后注释,再进行各种可能结果统计。
//疑惑:测试n=1000,明显超时,但提交AC,很明显,数据弱

#include
//int a[1000];
//int pos;
long long count=0;
void fun(int n){int i,j,top;for(i=1;i<=n/2;i++){/*pos++;a[pos]=i;top=pos;printf(",");for(j=top;j>=0;j--)printf("%d",a[j]);*/count++;fun(i);//pos--;}
}int main(){int n;scanf("%d",&n);/*printf("%d",n);pos=0;a[pos]=n;*/count++;fun(n);printf("%lld\n",count);return 0;
}

2019-12-7 21:42 因洛谷加强了该题   23.//p1028 数的计算   数据,决定重做此题。详见https://blog.csdn.net/mrcrack/article/details/62422639

24.//p1036 选数
//难度:普及-
//考点:输入,输出 ,递归,排列组合,质数的判定,深度优先遍历,阶乘计算  
//适用:初中
//小技巧:深度优先遍历,数据有重复,别忘了/f(k) 阶乘

#include
#include
int a[30],b[30],vis[30];
int n,k;
int count=0;
int f(int n){//阶乘 if(n==1)return 1;return f(n-1)*n;
}
int isprime(int n){//0非质数,1质数 int i;if(n==1)return 0;if(n==2)return 1;for(i=2;i*i<=n;i++)if(n%i==0)return 0;return 1;
}
void dfs(int step){int i,j,sum;if(step==k+1){sum=0;for(j=1;j<=k;j++)sum+=a[j];if(isprime(sum))count++; return ;}for(i=1;i<=n;i++)if(vis[i]==0){vis[i]=1;a[step]=b[i];dfs(step+1);vis[i]=0;}
}
int main(){int i;memset(vis,0,sizeof(vis));scanf("%d%d",&n,&k);for(i=1;i<=n;i++)scanf("%d",&b[i]);dfs(1);printf("%d\n",count/f(k));return 0;
}

25.//p1149 火柴棒等式
//难度:普及-
//考点:输入,输出 ,数组,取整,取模,将一个整数的个十百千万等位取出。  
//适用:小学生
//小技巧:穷举法,做了个超时测试i<=10000,j<=10000,发现算出答案与i<=1000,j<=1000相一致,提交时采用1000
//猜测:数据都在1000以内,因24-4=20等于10个1

#include
int b[10]={6,2,5,5,4,5,6,3,7,6};//0-9火柴根数
int fun(int n){int sum=0;if(n==0)return b[0];while(n){sum+=b[n%10];n/=10;}return sum;
}
int main(){int i,j,n,m,count=0; scanf("%d",&n);for(i=0;i<=1000;i++)for(j=0;j<=1000;j++){m=fun(i)+fun(j)+fun(i+j)+4;if(m==n)count++;}printf("%d\n",count); return 0;
}

26.//p1217 回文质数

dfs深搜写法

AC代码如下:

#include
int a,b,num1,num2,num;
int d[10],c[10];
int isPrime(int x){int i;if(x<2)return 0;if(x==2)return 1;for(i=2;i*i<=x;i++)if(x%i==0)return 0;return 1;
}
void dfs(int step){int i;if(step==(num+1)/2+1){int j,sum=0;for(j=1;j<=(num+1)/2;j++){sum+=d[j]*c[j-1];if(j}
int count(int x){int cnt=0;while(x)x/=10,cnt++;return cnt;
}
int main(){int i;scanf("%d%d",&a,&b);num1=count(a),num2=count(b);c[0]=1;for(i=1;i}

2020年12月19日 20:35 重写,dfs深搜代码如上。

//难度:普及-
//考点:输入,输出 ,质数判定,回文数生成技巧  
//适用:小学生
//注意:过大的数组要开到main函数的外面。
//感悟:开始还没什么头绪,但接着题目往下看,题目还有详细的提示。
//思路:枚举题目范围内的所有回文数,判定质数进行存储,在题目给定的方位内进行查找

#include
int a[10000];//存储质数
int count=0;//质数个数
int isprime(int n){//质数返回1,非质数返回0 int i;if(n==1)return 0;if(n==2)return 1;for(i=2;i*i<=n;i++)if(n%i==0)return 0;return 1;
}
void palindrome(){int d1,d2,d3,d4,d5,t;//1个数for(d1=1;d1<=9;d1+=2)if(isprime(d1))a[count++]=d1;//2个数for(d1=1;d1<=9;d1+=2){t=d1*10+d1;if(isprime(t))a[count++]=t;}//3个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++){t=d1*100+d2*10+d1;if(isprime(t))a[count++]=t;}//4个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++){t=d1*1000+d2*100+d2*10+d1;if(isprime(t))a[count++]=t;}//5个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++){t=d1*10000+d2*1000+d3*100+d2*10+d1;if(isprime(t))a[count++]=t;}//6个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++){t=d1*100000+d2*10000+d3*1000+d3*100+d2*10+d1;if(isprime(t))a[count++]=t;}//7个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++)for(d4=0;d4<=9;d4++){t=d1*1000000+d2*100000+d3*10000+d4*1000+d3*100+d2*10+d1;if(isprime(t))a[count++]=t;}//8个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++)for(d4=0;d4<=9;d4++){t=d1*10000000+d2*1000000+d3*100000+d4*10000+d4*1000+d3*100+d2*10+d1;if(isprime(t))a[count++]=t;}//9个数for(d1=1;d1<=9;d1+=2)for(d2=0;d2<=9;d2++)for(d3=0;d3<=9;d3++)for(d4=0;d4<=9;d4++)for(d5=0;d5<=9;d5++){t=d1*100000000+d2*10000000+d3*1000000+d4*100000+d5*10000+d4*1000+d3*100+d2*10+d1;if(isprime(t))a[count++]=t;}
}
int main(){int a2,b;int i;palindrome();scanf("%d%d",&a2,&b);for(i=0;i=a2&&a[i]<=b)printf("%d\n",a[i]);else if(a[i]>b)break;return 0;
}

2017-7-24 6:56 重新修改 p1217 回文质数


BOSS战-入门综合练习1

27.//p1478 陶陶摘苹果(升级版)
//难度:普及-
//考点:输入,输出 ,数组,结构体,排序  
//适用:小学生
//注意:存在力气用不完,苹果已摘完;存在力气不够用苹果已摘完。
//思路:找出能摘到的苹果,按消耗的力气由小到大排序。第一遍扫描,将能摘到的苹果存下来,采用结构体,数据比较清晰。

#include
struct node{int x;int y;
}p[5000+10],p_t;//苹果 int main(){int n,s;int i,j;int x,y;int a,b;int count=0;int num=0;scanf("%d%d",&n,&s);scanf("%d%d",&a,&b);for(i=0;i=x){//存能摘到的苹果 p[count].x=x;p[count].y=y;count++;}}for(i=0;ip[j].y){p_t=p[i];p[i]=p[j];p[j]=p_t;}for(i=0;i=p[i].y){s=s-p[i].y;num++;}elsebreak; printf("%d\n",num);return 0;
}

28.//p1618 三连击(升级版)
//难度:普及-
//考点:输入,输出 ,整数四则运算,数组,递归,深度优先遍历。  
//适用:小学生
//陷阱:编得高兴的时候,容易漏了 若无解,输出“No!!!”

#include
#include
int A,B,C;
int a[10],vis[10];
int count=0;
void dfs(int step){int i;int b1,b2,b3;if(step==10){b1=a[1]*100+a[2]*10+a[3];b2=a[4]*100+a[5]*10+a[6];b3=a[7]*100+a[8]*10+a[9];if(b1*B*C==b2*A*C&&b2*A*C==b3*A*B){count++;printf("%d %d %d\n",b1,b2,b3);}}for(i=1;i<=9;i++)if(vis[i]==0){vis[i]=1;a[step]=i;dfs(step+1);vis[i]=0;}
}
int main(){memset(vis,0,sizeof(vis));scanf("%d%d%d",&A,&B,&C);dfs(1);if(count==0)printf("No!!!\n");return 0;
}

29.//p1579 哥德巴赫猜想(升级版)
//难度:普及-
//考点:输入,输出 ,判断质数,数组
//适用:小学生
//思考:将2000以内的素数全部找出,三层循环,判断,输出符合条件的数据。

#include
int a[20000];
int count=0;
int isprime(int n){//0非质数 1质数 int i;if(n==1)return 0;if(n==2)return 1;for(i=2;i*i<=n;i++)if(n%i==0)return 0;return 1;
}
void find(){int i;for(i=1;i<20000;i++)if(isprime(i))a[count++]=i;
}
int main(){int i,j,k;int n;int flag=0;find();scanf("%d",&n);for(i=0;i}

30.//p2089 烤鸡
//难度:入门难度
//考点:输入,输出 ,暴力,或深度优先遍历  
//适用:小学生
//注意:过大的数组要开到main函数的外面。
//陷阱:没想到解的数量十分巨大,如何计算接的数量,(3333333333-1111111111)=2222222222还要研究
//思路:准备暴力破解,但for循环有10个,写得难受,采用dfs方式缩减代码。
//收获:成功的将多层for循环写成递归的形式,dfs搜索更上一层楼。

#include
int a[100000][20],b[20];//a[20][20]开得太小了,导致WA 1000也要WA于是开到100000
int count=0;
int n;
void dfs(int step){int i,j;int sum;if(step==11){sum=0;for(j=1;j<=10;j++) sum+=b[j];if(sum==n){for(j=1;j<=10;j++)a[count][j]=b[j];count++;}return;}for(i=1;i<=3;i++){b[step]=i;dfs(step+1);}
}
int main(){int i,j;scanf("%d",&n);if(n>30){printf("0\n");return 0;}dfs(1);printf("%d\n",count);for(i=0;i}

BOSS战-入门综合练习2

31.//p1426 小鱼会有危险吗
//难度:入门难度
//考点:输入,输出 ,等比数列,浮点数运算  
//适用:知识(高中生),编程(小学生)
//陷阱:测试点2挺奇葩的,3 4 y一开始就在猎人捕杀范围  
//疑惑:时间足够长,小鱼有可能没进猎捕范围就停下了。应该要判断。 经过等比数列计算a1/1-q=350米,故不用判断。
 

#include
int main(){float s,x;float dis,sp;scanf("%f%f",&s,&x);dis=0;//第0秒if(dis>=s-x){//特列判断dis=7;//第一秒if(dis<=s+x)printf("y\n");elseprintf("n\n");return 0; } dis=sp=7;//第一秒 while(diss+x)printf("n\n");elseprintf("y\n"); return 0;
}

32.//p1464 Function
//难度:普及-
//考点:输入,输出 ,整数四则运算,取整,取模  
//适用:小学生
//注意:过大的数组要开到main函数的外面。
//小技巧:要设置一个计数变量
//陷阱:输出格式w(1, 1, 1) = 2注意有4个空格。 此题陷阱多多
//思考:题目的输入数据挺吓人,采用long long,看完题目突然看到记忆化搜索,正好2017-3-17
//看到《挑战程序设计竞赛(第2版)》巫泽俊 里有介绍,那么编起程序是手到擒来。
//提交:没有经过优化竟然全报TLE,突然醒悟到记忆化搜索该怎么编。再次提交RE,明白数组开小了
//注意:输入负数要单独处理,题目没看仔细,负数,或是超大的数都单独处理即可。生手毕竟生手。
 

#include
#define n 30//改了mem[100][100][100]此处没改成30又折腾了一会
long long mem[30][30][30];//mem[30][30][30]太小了 ,后来一看,开得够大了
long long w(long long a,long long b,long long c){if(a<=0||b<=0||c<=0)return 1;if(a>20||b>20||c>20){if(mem[20][20][20]==0)mem[20][20][20]=w(20,20,20);return mem[20][20][20];}if(a}
int main(){long long a,b,c;for(a=0;a20||b>20||c>20){if(mem[20][20][20]==0)mem[20][20][20]=w(20,20,20);printf("w(%lld, %lld, %lld) = %lld\n",a,b,c,mem[20][20][20]);}else{if(mem[a][b][c]==0)mem[a][b][c]=w(a,b,c);printf("w(%lld, %lld, %lld) = %lld\n",a,b,c,mem[a][b][c]);}}return 0;
}

33.配上该幅图,该题所要表达的意思就清楚了,不过纯粹由提供的数据想到该图对应的取数方法,还是很困难的。

//p1014 Cantor表
//难度:入门难度
//考点:输入,输出 ,找规律  
//适用:小学生
//小技巧:同一对角线上,分子降序,分母升序 ,分子+分母=定值
//配上该幅图,该题所要表达的意思就清楚了,不过纯粹由提供的数据想到该图对应的取数方法,还是很困难的。
 

#include
int main(){int n,i;//n分子,i分母 int ascend;//分子升序1,降序0 scanf("%d",&n);i=1;ascend=0;while(n>i){n=n-i;i++;ascend=!ascend;}if(ascend==0){//降序n=i-n+1;//分子处理 }i=i-n+1;printf("%d/%d\n",n,i);return 0;
}

2017-3-19 上午10:20完结。

 

新手村通关。水平得以提升,掌握了多行字符串(包含空格)的处理,深度优先遍历(其中包括将多层循环写成递归形式),记忆搜索。


推荐阅读
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • c语言\n不换行,c语言printf不换行
    本文目录一览:1、C语言不换行输入2、c语言的 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
  • 本文介绍了C函数ispunct()的用法及示例代码。ispunct()函数用于检查传递的字符是否是标点符号,如果是标点符号则返回非零值,否则返回零。示例代码演示了如何使用ispunct()函数来判断字符是否为标点符号。 ... [详细]
  • 本文介绍了一个程序,可以输出1000内能被3整除且个位数为6的所有整数。程序使用了循环和条件判断语句来筛选符合条件的整数,并将其输出。 ... [详细]
author-avatar
翔溢_142
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有