B. Restoring Painting CodeForces - 675B
原题链接 位于CodeForceshttps://codeforces.com/problemset/problem/675/B
翻译
小 V 在玩填数游戏,游戏在 3×3 的正方形中进行。
- 9 个格子中的数字都为 1∼n 的整数,不同格子中的数字可以相同。
- 正方形可以划分出 4 个 2×2 的小正方形,这四个正方形中的数之和相同。
- 如图所示,a, b, c, d 的值是已知的。
现在 小 V 想知道,剩下的 5 个数一共有多少种填法。
题意及思路
可以很容易得到,四周数字的填写与中间数字无关,因而我们枚举中间数 e 为1~n
所以可以知道每次枚举e时,a,b,c,d,e是固定值,因而四周数的相对差是相同的
所以根据n的大小得出四周数的范围,因为四个方块的和相同,则与:a+b, a+c, b+d, c+d有关
经过分析,四周数的范围与其中的 最大值max 与 最小值min 有关
范围大小是最大和减最小和加一,可以得出每次枚举的四周数范围为n-(max-min+1)+1
因为我们知道当差值过大以至于大于n时没有答案,所以每次枚举结果为max(n-(max-min+1)+1, 0)
因为枚举中间数, 所以次数即为n,答案为 n * max(n-(max-min+1)+1, 0)
#include <bits/stdc++.h>
using namespace std;int main()
{int i, j, t;int a, b, c, d;long long n;scanf("%lld%d%d%d%d", &n, &a, &b, &c, &d);int xmax = max(max(a+b, a+c),max(b+d, c+d));int xmin = min(min(a+b, a+c),min(b+d, c+d));printf ("%lld", n * max<long long>(n - (xmax - xmin + 1) + 1, 0));// 此处需用“longlong的max”,因为答案包含longlong数return 0;
}
B. Restoring Painting CodeForces - 675B相关推荐
- Restoring Permutation CodeForces - 1315C(思维)
You are given a sequence b1,b2,-,bn. Find the lexicographically minimal permutation a1,a2,-,a2n such ...
- Codeforces Round #353 (Div. 2)
数学 A - Infinite Sequence 等差数列,公差是0的时候特判 #include <bits/stdc++.h>typedef long long ll; const in ...
- java 获取自定义参数类型_Springboot中使用自定义参数注解获取 token 中用户数据...
使用自定义参数注解获取 token 中User数据 使用背景 在springboot项目开发中需要从token中获取用户信息时通常的方式要经历几个步骤 拦截器中截获token TokenUtil工具类 ...
- 2020 BUPT Winter Training #1 Div.1
2020 BUPT Winter Training #1 Div.1 这些题真的很不错 读完题一道都不会 补完每一道都骂自己sb 文章目录 [A - Cover it!](https://vjudge ...
- Codeforces Round #700 (Div. 2) D2 Painting the Array II(最通俗易懂的贪心策略讲解)看不懂来打我 ~
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 整场比赛的A ~ E 6题全,全部题目超高质量题解链接: Codeforces Round #700 ...
- CodeForces - 1480D2 Painting the Array II(dp)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,现在要求拆分成两个子序列,使得两个子序列的贡献之和最 小.对于一个序列的贡献就是,去掉相邻且相同的字母后的长度,即 ∑i=1n[a[i]! ...
- CodeForces - 1480D1 Painting the Array I(贪心)
题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,现在要求拆分成两个子序列,使得两个子序列的贡献之和最 大.对于一个序列的贡献就是,去掉相邻且相同的字母后的长度,即 ∑i=1n[a[i]! ...
- Codeforces 448C Painting Fence:分治
题目链接:http://codeforces.com/problemset/problem/448/C 题意: 有n个木板竖着插成一排栅栏,第i块木板高度为a[i]. 你现在要将栅栏上所有地方刷上油漆 ...
- [CodeForces 300D Painting Square]DP
http://codeforces.com/problemset/problem/300/D 题意:每一次操作可以选一个正方形,令边长为n,如果n为奇数那么可以从中间画一个十字,分成4个大小相等的边长 ...
最新文章
- MySQL增量订阅消费组件Canal POC
- 一文读懂你该了解的5G知识:现在别买5G手机
- admin及admin888 经过 md5加密后16位和32位代码
- 【转】QT 串口QSerialPort + 解决接收数据不完整问题
- win服务器系统程序原因分析
- 2月末周全球域名解析商Top15:万网DNSPod份额均上涨
- 程序员如何理解Gmail“撤销发送”功能
- Python实现 QQ 半自动发送情话,我追到了女神
- php设计模式 — 单例模式(singleton)
- yum的更多用法和源码编译安装apache
- nvidia显示设置不可用_白送大福利?实战FreeSync显示器开启NVIDIA G-Sync Compatible
- 简单高效实现导出excel数据表格
- yeahnet邮箱服务器,网易126/163/Yeah.net免费邮箱开放IMAP服务
- 以图搜图 图像匹配_以图搜图是什么 如何实现以图搜图
- C语言 输入一个不大于五位的数字,先判断是几位数字,然后将其数字顺序输出和逆序输出
- python实现位置定位_python定位位置
- Jolla 超额完成开源平板电脑众筹
- Baxter学习笔记6-鼠标点动控制baxter机械臂--实战篇
- summernote 的快速使用,以及解决图片写入数据库问题
- 视频教程-ShardingSphere:SpringBoot2+MybatisPlus读写分离+分表-Java