【cf】Restoring Paintie

原创 2016年05月31日 17:05:08

原题

题意:每个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;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

Codeforces Round #451 (Div. 2)题解

比赛时间2017 12 16 19:35-21:35。 结果+133rating。
  • s223568907
  • s223568907
  • 2017年12月17日 13:19
  • 78

CF 245D Restoring Table

D - Restoring Table Time Limit:2000MS    Memory Limit:262144KB    64bit IO Format:%I64d & %I64u ...
  • u011676717
  • u011676717
  • 2013年08月16日 13:55
  • 453

CF:94A. Restoring Password

先将“0,1,2,3,4,5,6,7,8,9”所对应的的字符串保存,再用密码串的各个子串与之比较,输出相应十进制数。截取密码串获得子串,要用到substr( )函数,其参数与erase( )函数的参数...
  • Freeddong
  • Freeddong
  • 2013年05月06日 09:14
  • 339

SQL Server - 数据库恢复的时候停在 Restoring 状态

http://stackoverflow.com/questions/520967/sql-server-database-stuck-in-restoring-state
  • yuxuac
  • yuxuac
  • 2016年11月14日 10:03
  • 1249

Sql server 2012还原数据库失败后数据库变成了restoring...状态

在数据库中执行如下脚本就可以了 restore database 数据库名称 with recovery
  • j1225735180
  • j1225735180
  • 2014年10月21日 15:42
  • 862

尝试数据库被标记为RESTORING的处理方式

Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE ...
  • claro
  • claro
  • 2009年03月27日 00:29
  • 4681

Codeforces 898F Restoring the Expression [hash+枚举]

Codeforces 898F Restoring the Expression [hash+枚举]
  • ACTerminate
  • ACTerminate
  • 2017年12月18日 13:26
  • 256

数据库一直显示为正在还原(restoring)状态--处理

备份一数据库:完整备份、差异备份、事务日志备份--测试 进行还原时,提示还原成功,可是数据库一直显示为正在还原(restoring)状态。 可以从通过“select * from sysdatab...
  • leamonjxl
  • leamonjxl
  • 2011年11月22日 17:44
  • 8233

CodeForces 490E Restoring Increasing Sequence(贪心)

CodeForces 490E Restoring Increasing Sequence(贪心) CodeForces 490E 题目大意:给N个正整数,然而这些正整数中间有些数字是被‘...
  • u012997373
  • u012997373
  • 2015年06月05日 09:50
  • 698

tensorflow官方教程: 建立新的卷积神经网络

tensorflow官方教程: 建立新的卷积神经网络 本文主要包含如下内容: tensorflow官方教程 建立新的卷积神经网络 建立CNN MNIST分类器 培训和评估CNN MNIST...
  • u010579901
  • u010579901
  • 2018年01月16日 13:56
  • 68
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【cf】Restoring Paintie
举报原因:
原因补充:

(最多只允许输入30个字)