洛谷 NOIP2014普及组 比例简化 + 洛谷 NOIP2015普及组 扫雷游戏

先看第一道题比例简化:

题干:

洛谷 NOIP2014普及组 比例简化 + 洛谷 NOIP2015普及组 扫雷游戏_第1张图片

输入输出样例以及样例范围:

洛谷 NOIP2014普及组 比例简化 + 洛谷 NOIP2015普及组 扫雷游戏_第2张图片 

其实不难看出这一道题目的样例范围并不大,所以其实我们可以用暴力枚举的方式进行解答,虽然暴力枚举在很多题目并不值得提倡,不过不得不承认它是一种更容易让人理解的方法。

对于这一道题,要求新的A',B'的比值要大于等于A/B并且二者之差尽可能小,同时新的A',B'互质而且不能大于L。其实思路很明确了,我们只需要二重循环,分别从1到L进行枚举,通过不断的更新答案,就会得到最后的结果,另外我们需要写一个判断两个数字是否互质,直接上代码:

#include
#include
using namespace std;
int A,B,L;
bool coprime(int a,int b){
     for(int d=2;d<=a;d++){
     	if(!a%d && !b%d)
     	return false;
	 }
	 return true;
}
int main(){
	cin>>A>>B>>L;
	double ans=1<<23; 
	int ansA=-1,ansB=-1;
	for(int a=1;a<=L;a++){
		for(int b=1;b<=L;b++)
		{
			//a,b互质且a/b>=A/B
			if(coprime(a,b) && (double)a/b>=(double)A/B){
				double tmp=1.0*a/b-1.0*A/B;
				if(tmp

这一道题目的难度并不大,想道两重循环和中间变量tmp来更新ans即可。

第二道题目,扫雷游戏:

先看题目:

洛谷 NOIP2014普及组 比例简化 + 洛谷 NOIP2015普及组 扫雷游戏_第3张图片 接下来看输入输出样例以及数据范围:

洛谷 NOIP2014普及组 比例简化 + 洛谷 NOIP2015普及组 扫雷游戏_第4张图片

这道题目就是一道简单的模拟题,主要是需要考虑的是再计算每一个格子周围的地雷数目时,我们通过怎样的代码来计算,更为佳,下面是我的代码:

#include
using namespace std;
int n,m;
char a[110][110];
int ans[110][110];
int main(){
	scanf("%d%d",&n,&m);
	for(int i=0;i=0 && x=0 && y

我用dx,dy从-1开始,1为止,来枚举每一个数字的周围九个格子,当然了,当周围的某个格子是空白的时候需要特判,所有我加了if作为特判条件,这样就能轻松的完成本题了。

你可能感兴趣的:(游戏)