渣渣眼里没有水题

我将一直前行,即使那时身边空无一人

【cf】Restoring Paintie

原题

题意:每个2*2的矩形和都相等,求满足该矩形的方法数。


1.思路:

将其余几个空格从左到右,从上到下为e,f,g,h,i,列出b+e=f+c,b+h=c+i,a+e=h+d,a+f=d+i,即g(正中间的数)可取任何数,所以求出方法数,然后*n。枚举其中一个未知数e,将其他未知数用已知数表示出来,通过for循环求解。

<span style="font-family:SimSun;font-size:18px;"><strong>#include<stdio.h>
int main(){
	int n,a,b,c,d,e,f,g,h,i;
	while (scanf("%d%d%d%d%d",&n,&a,&b,&c,&d)!=EOF){
		long long sum=0;
		for (e=1;e<=n;e++){
			f = e-c+b;
			h = a-d+e;
			i = a-d+f;
			if ((f>=1&&f<=n)&&(h>=1&&h<=n)&&(i>=1&&i<=n))
			sum++;
		}
		printf("%lld\n",sum*n);
	} 
	return 0;
}</strong></span>
2.思路:

由1,正中间的可取任何数, 假设左上角放的是x,根据可以得到三个方程;
         f: 1<=x+b-c<=n,所以 c-b+1<=x<=c-b+n;
         h:1<=x+a-d<=n,所以d-a+1<=x<=d-a+n;
         i:1<=a+b+x-c-d<=n,所以c+d-a-b+1<=x<=c+d-a-b+n;
          同时1<=x<=n;
          所以x最小可以取cnt1=max(1,c-b+1,d-a+1,c+d-a-b+1);
                  最大可以取cnt2=min(n,c-b+n,d-a+n,c+d-a-b+n);
          如果cnt2<cnt1,没有可行解,答案是0; 否则ans=(cnt2-cnt1+1)*n;

#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
    int n,a,b,c,d,i,cnt1,cnt2;
	long long ans;
    while (scanf("%d%d%d%d%d",&n,&a,&b,&c,&d)!=EOF){
    	cnt1=max(1,max(max(c-b+1,d-a+1),c+d-a-b+1));
    	cnt2=min(n,min(min(c-b+n,d-a+n),c+d-a-b+n));
    	if(cnt2>=cnt1)
    	ans=(long long)(cnt2-cnt1+1)*n;
    	else ans=0;
    	printf("%lld\n",ans);
	}
    
    return 0; 
}
3.思路:

#include <iostream>
using namespace std;
main(){
int n,a,b,c,d;
cin>>n>>a>>b>>c>>d;
cout<<max(n-abs(a-d)-abs(b-c),0)*1ll*n;
}



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012910051/article/details/51547320
上一篇Life Without Zeros
下一篇暑期二(A)(hdu2041)
想对作者说点什么? 我来说一句

CF一键搜索基址源码

2014年11月21日 371KB 下载

读写CF卡的驱动程序包

2008年12月25日 11KB 下载

不同品牌工业级CF卡测速数据

2014年09月30日 79KB 下载

cf透视源码永久可用源码

2015年11月08日 772KB 下载

周立功CF卡的读写程序

2010年07月19日 92KB 下载

易语言模块易语言模块

2010年08月14日 529KB 下载

Siemens CF卡授权找回方法

2013年06月20日 739KB 下载

2016最新吾爱破解CF辅助源码

2016年03月04日 755KB 下载

没有更多推荐了,返回首页

关闭
关闭