Codeforces 675B Restoring Painting
链接:传送门
题意:给出3 × 3的方块,其中任意2 × 2的方块和左上角2 × 2的和相等,还给出9个格子中的4个——a,b,c,d ,在1~n中选择一些数(可重复)填入剩下5个格子中,问有多少种填法

思路:设5个 ?分别为x1,x2,x3,x4,x5 ,最后合并整理可以求得两个式子:
- x4 - x2 = a - b + c - d
- x5 - x1 = a + b - c - d
先遍历x4 然后二分 x2 ,O(2nlog(n))的复杂度,理论上是没问题的
/*************************************************************************
> File Name: test1.cpp
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年04月17日 星期一 19时53分46秒
************************************************************************/
#include<bits/stdc++.h>
using namespace std;
int n,a,b,c,d;
int x1,x2,x4,x5;
int s1,s2;
int flag[100010];
int main(){
for(int i=0;i<100010;i++) flag[i] = i+1;
while(scanf("%d%d%d%d%d",&n,&a,&b,&c,&d)!=EOF){
int cnt1 = 0 , cnt2 = 0;
s1 = a-b+c-d; s2 = a+b-c-d;
for(x4=1;x4<=n;x4++){
if( binary_search(flag,flag+n,x4-s1) )
cnt1++;
}
for(x5=1;x5<=n;x5++){
if( binary_search(flag,flag+n,x5-s2) )
cnt2++;
}
printf("cnt1 = %d , cnt2 = %d\n",cnt1,cnt2);
int t = min(cnt1,cnt2);
long long ans = t;
ans *= n;
cout<<ans<<endl;
}
return 0;
}
这样就完了?这样就结束了?还有更好的方法吗?当然有......
对于x4 - x2 = s1,有必要算x2吗?很显然没必要,只需要判断x2在符合的区间内就ok了,O(2n)还二分?被嘲讽为草履虫了......
/*************************************************************************
> File Name: d.cpp
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年04月17日 星期一 23时55分05秒
************************************************************************/
#include<bits/stdc++.h>
using namespace std;
int n,a,b,c,d,s1,s2,x4,x5;
int main(){
while(scanf("%d%d%d%d%d",&n,&a,&b,&c,&d)!=EOF){
s1 = a-b+c-d; s2 = a+b-c-d;
int cnt1 = 0 , cnt2 = 0;
// x4 - x2 = s1
for(x4=1;x4<=n;x4++)
if(x4-s1>=1 && x4-s1<=n) cnt1++;
// x5 - x1 = s2
for(x5=1;x5<=n;x5++)
if(x5-s2>=1 && x5-s2<=n) cnt2++;
long long ans = min(cnt1,cnt2);
ans *= n;
cout<<ans<<endl;
}
return 0;
}
Codeforces 675B Restoring Painting的更多相关文章
- codeforces 675B B. Restoring Painting(暴力枚举)
题目链接: B. Restoring Painting time limit per test 1 second memory limit per test 256 megabytes input s ...
- Codeforces Round #353 (Div. 2) B. Restoring Painting 水题
B. Restoring Painting 题目连接: http://www.codeforces.com/contest/675/problem/B Description Vasya works ...
- Codeforces Round #353 (Div. 2)Restoring Painting
Vasya works as a watchman in the gallery. Unfortunately, one of the most expensive paintings was sto ...
- 【Codeforces 1132C】Painting the Fence
Codeforces 1132 C 题意:给一些区间\([l_i,r_i]\),从中删掉两个,求剩下的区间最多能够覆盖的格子数量. 思路:首先枚举第一个删掉的区间,然后我们可以通过差分来求出每个格子被 ...
- Codeforces 898F - Restoring the Expression(字符串hash)
898F - Restoring the Expression 思路:字符串hash,base是10,事实证明对2e64取模会T(也许ull很费时),对1e9+7取模. 代码: #include< ...
- Codeforces 448 C. Painting Fence
递归.分治. . . C. Painting Fence time limit per test 1 second memory limit per test 512 megabytes input ...
- 【codeforces 509B】Painting Pebbles
[题目链接]:http://codeforces.com/contest/509/problem/B [题意] 给n鹅卵石染色; 有k种颜色可供选择; 问你有没有染色方案; 使得各个堆的鹅卵石里面,第 ...
- codeforces#1187E. Tree Painting(树换根)
题目链接: http://codeforces.com/contest/1187/problem/E 题意: 给出一颗树,找到一个根节点,使所有节点的子节点数之和最大 数据范围: $2 \le n \ ...
- Codeforces - 1198D - Rectangle Painting 1 - dp
https://codeforces.com/contest/1198/problem/D 原来是dp的思路,而且是每次切成两半向下递归.好像在哪里见过类似的,貌似是紫书的样子. 再想想好像就很显然的 ...
随机推荐
- vue router 配置默认页/404页面
*号通配404默认页面
- css 垂直居中方法总结
工作中遇到垂直居中问题,特此总结了一下几种方式与大家分享.本文讨论的垂直居中仅支持IE8+ 1.使用绝对定位垂直居中 HTML <div class="container"& ...
- 洛谷P1739 表达式括号匹配
题目描述 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@"作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返 ...
- ansible自动化部署
ansible通过模块实现批量管理及部署服务器,功能有模块实现 ansible无需在被控端安装agent/client,因为ansible是通过ssh分发ad-hoc(单条指令)或者palybook( ...
- 如何指定GCC的默认头文件路径
如何指定GCC的默认头文件路径 网上偶搜得之,以之为宝:)原地址:http://blog.chinaunix.net/u/28781/showart.php?id=401631============ ...
- 《黑白团团队》第八次团队作业:Alpha冲刺 第五天
项目 内容 作业课程地址 任课教师首页链接 作业要求 团队项目 填写团队名称 黑白团团队 填写具体目标 认真负责,完成项目 团队项目Github仓库地址链接. 第五天 日期:2019/6/19 成员 ...
- C/C++ 获取文件夹下的所有文件列表
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51009608 提供一段C/C++代码示 ...
- lim的日常生活
- spring是怎样管理mybatis的及注入mybatis mapper bean的
1.spring启动mybatis的两个重要类:SqlSessionFactoryBean和MapperFactoryBean,这两个类都是org.mybatis.spring jar包的. 是用来启 ...
- 逆向学习XXclient怎样仅仅执行一个实例
个人觉得学习分两种, 一种是当面请教和直接从书本网络中的资料学习. 其二就是看着令你惊叹的作品-顿悟. 什么?顿悟不了?那我们就一起来逆向学习吧!差点忘了,我并不打算提供Demo,这并不重要,难道你打 ...