洛谷啊

P1421 小玉买文具

https://www.luogu.com.cn/problem/P1421
浮点数满足除法的运算!!!

P3951 小凯的疑惑

https://www.luogu.com.cn/problem/P3951?contestId=24322
纯数学问题:
公式:a*b-a-b;
注意洛谷的64位整数不能用__int64,要用long long,输入输出格式都是%lld。

P1036 选数

https://www.luogu.com.cn/problem/P1036
个人觉得这是一道比较简单经典的dfs题,而且告诉我们dfs可以用来解决从n个数中选取k个数这样的问题。

#include
int n=0,sum=0,k=0,arr[22]; 
int is_prime(int n){//在此函数内部定义的变量n只能在此函数中使用,与全局变量n无关。 for(int i=2;i*i<=n;i++){if(n%i==0)  return 0;}return 1;
}
int dfs(int already_sum,int step,int start){if(step==k){sum+=is_prime(already_sum);return 0;	}  for(int i=start;i<n;i++){//already_sum+=arr[i];//already_sum的值只看当前函数,是因为在函数内部定义already_sum?//dfs(already_sum,++step,++start);//在当前函数内,由于++step,step的值变了。 dfs(already_sum+arr[i],step+1,++start); //already_sum-=arr[i];step--;}return 0;
}
int main(){scanf("%d%d",&n,&k);for(int i=0;i<n;i++)  scanf("%d",&arr[i]);dfs(0,0,0);printf("%d\n",sum);return 0;
} 

P1149 火柴棒等式

纯暴力,因为最多是百位相加。

//最多是百位数相加,直接暴力搜索。区分个位和十位相加,考虑a==b==n/2
#include//学一下替换 ,洛谷 
int main(){int n=0,arr[11]={6,2,5,5,4,5,6,3,7,6};int i=0,j=0,a=0,b=0,c=0,num=0,flag=0,sum=0;scanf("%d",&n);//-4根for(i=0;i<=999;i++){for(j=0;j<=999;j++){flag=0;if(i>=10&&i<=99)  flag+=arr[i%10]+arr[i/10];else if(i>=100)  flag+=arr[i%10]+arr[i/10%10]+arr[i/100];else  flag+=arr[i%10];if(j>=10&&j<=99)  flag+=arr[j%10]+arr[j/10];else if(j>=100)  flag+=arr[j%10]+arr[j/10%10]+arr[j/100];else  flag+=arr[j%10];if((i+j)>=10&&(i+j)<=99)  flag+=arr[(i+j)%10]+arr[(i+j)/10];else if((i+j)>=100&&(i+j)<=999)  flag+=arr[(i+j)%10]+arr[(i+j)/10%10]+arr[(i+j)/100];else if((i+j)>=1000)  flag+=arr[(i+j)%10]+arr[(i+j)/10%10]+arr[(i+j)/100%10]+arr[(i+j)/1000];else  flag+=arr[(i+j)%10];if(flag==n-4){if(i==j)  num++;sum++;//printf("%d %d\n",i,j);	}  }}printf("%d\n",sum-num/2);return 0; 
} 

打表:

#include
int main()
{int a[2001]={6},b,c[10]={6,2,5,5,4,5,6,3,7,6},s=0,i,j;scanf("%d",&b);for(i=1;i<=2000;i++){j=i;while(j>=1)//求每个数所用的火柴棒{//亮点!!这一步挺强的!求出各个数字的数码和。a[i]=a[i]+c[j%10];j=j/10;}}for(i=0;i<=1000;i++){for(j=0;j<=1000;j++)if(a[i]+a[j]+a[i+j]+4==b)s++;//还有加号与等号}printf("%d",s);return 0;
}

然后为了减少时间,提高rank,直接把答案打表

#include
using namespace std;
int f[25]={0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,8,9,6,9,29,39,38,65,88,128};
int main()
{int a;scanf("%d",&a);printf("%d\n",f[a]);return 0;
}

P1293 班级聚会
https://www.luogu.com.cn/problem/P1293
这道题,类似于homework,用二维数组来代替结构体时,一定要注意将相应的变量交换,我就是少交换了一个变量,然后错了。
有个比较有意思的东西
在这里插入图片描述
这个东西是undefined behavior
应该这么写:
在这里插入图片描述

P1022 计算器的改良

这道题是个很精彩的模拟,但是我没有写出来。这种模拟题很细节,要想写好,一定要在写之前,想好能够处理所有情况,无懈可击的逻辑的模拟方法。
否则很难下笔。反正我还是没有写出来。

P1328 生活大爆炸版石头剪刀布

这道题没必要写很多个if else
打个表就可以了。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部