【cf】Restoring Paintie
来源:互联网 发布:java 执行jar包 参数 编辑:程序博客网 时间:2024/05/17 19:18
原题
题意:每个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;}
0 0
- 【cf】Restoring Paintie
- CF:94A. Restoring Password
- CF 245D Restoring Table
- 周练cf G - Restoring Painting 【数学 规律】
- Restoring Numbers
- Restoring Painting
- Restoring Optimizer Statistics
- A. Restoring Password
- [CF509D] Restoring Numbers && 构造
- B. Restoring Painting
- A. Restoring Password
- TensorFlow 的 Saving&Restoring
- [agc005c]Tree Restoring
- CF
- CF
- cf
- cf
- CF
- js判断IE版本
- Java
- HttpClient的Post请求
- 博弈论重解
- Unable to load DLL 'xxx.dll': 找不到指定的模块。 (Exception from HRESULT: 0x8007007E)
- 【cf】Restoring Paintie
- 03-树1 树的同构
- OC学习笔记(六)--类的常见错误总结
- ubuntu安装tomcat9.0记录
- Android--从零单排系列(3)--文件读写的操作
- 2016年5月31日心情随笔
- iOS学习项目(06-超级猜图)
- 【设计风格】-Restful
- Android 5.0+ 自定义普通按钮的ripple波纹效果