BZOJ5071 小A的数字
设f[i]为选择i对i-1和i+1所带来的贡献。则有f[i-1]+f[i+1]+a[i]-2f[i]=b[i],特殊地,f[2]+a[1]=b[1],f[n-1]+a[n]-2f[n]=b[n]。可以发现这样我们有n-1个未知数和n个方程,代入求解判断是否矛盾即可。
但这只有必要性显然,为什么是充分的呢?我也不知道。还是前缀和的做法比较简单易懂。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
#define N 100010
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<''||c>'')) c=getchar();return c;}
int gcd(int n,int m){return m==?n:gcd(m,n%m);}
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
int T,n,a[N],b[N];
ll f[N];
int main()
{
#ifndef ONLINE_JUDGE
freopen("bzoj5071.in","r",stdin);
freopen("bzoj5071.out","w",stdout);
const char LL[]="%I64d\n";
#else
const char LL[]="%lld\n";
#endif
T=read();
while (T--)
{
n=read();
for (int i=;i<=n;i++) a[i]=read();
for (int i=;i<=n;i++) b[i]=read();
f[]=b[]-a[];
for (int i=;i<=n;i++) f[i]=*f[i-]+b[i-]-a[i-]-f[i-];
if (f[n-]+a[n]-b[n]!=*f[n]) cout<<"NO\n";
else cout<<"YES\n";
}
return ;
}
BZOJ5071 小A的数字的更多相关文章
- BZOJ5071 小A的数字 BZOJ2017年10月月赛 其他
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ5071 题意概括 题解 一开始蒙了. 感觉做过类似的题目. 但是找不到方法. 突然想到前缀和! 对于 ...
- 【BZOJ5071】[Lydsy十月月赛]小A的数字 发现性质
[BZOJ5071][Lydsy十月月赛]小A的数字 题解:一般遇到这种奇奇怪怪的操作,常用的套路是将原序列差分一下,或者求个前缀和什么的.本题就是直接对原序列求前缀和,然后发现一次操作相当于交换两个 ...
- 【BZOJ5074】[Lydsy十月月赛]小B的数字 数学
[BZOJ5074][Lydsy十月月赛]小B的数字 题解:题目是问你ai*bi>=sum,bi>=0这个不等式组有没有解.因为a<=10,容易想到取ai的lcm,然后变成lcm*b ...
- 【bzoj5071】[Lydsy十月月赛]小A的数字 乱搞
题目描述 有一串数字 A1,A2...An 每次可以进行如下操作,选择一个数字 i ,将 (Ai-1 , Ai , Ai+1) 变为 (Ai-1 + Ai , -Ai , Ai+1 + Ai) ,特别 ...
- [BZOJ 5071]小A的数字
Description 小A成为了一个数学家,他有一串数字A1,A2...An 每次可以进行如下操作,选择一个数字i(1<i<=n),将(Ai-1,Ai,Ai+1) 变为(Ai-1 + A ...
- 洛谷U32670 小凯的数字(比赛)
题目网址 https://www.luogu.org/problemnew/show/U32670 题目背景 NOIP2018 原创模拟题T1 NOIP DAY1 T1 or DAY 2 T1 难度 ...
- U32670 小凯的数字 数学
这是洛谷一个比赛中的一道题,和去年NOIP D1T1挺像.我看了一眼之后想“这不是小学奥数吗?求一个数字和就好了呀”...然后,60,剩下T了,gg. 只好看正解,但是一脸懵逼???然后看了证明,c* ...
- Python小游戏——猜数字教程(random库教程)
今天来开发一个简单的数字逻辑游戏,猜数字(数字炸弹) 首先开发游戏第一件事,了解需求. 猜数字游戏规则: 计算机随机生成一个指定范围的数字,由玩家来猜测, 之后计算机会根据玩家提供数字来与自己生成的数 ...
- yzoj2424 小迟的数字 题解
题意:如果一个数字用十进制表示,有大于等于1个1,或者大于等于2个2,或者大于等于3个3,或者大于等于4个4,或者大于等于5个5,或者大于等于6个6,或者大于等于7个7,或者大于等于8个8,或者大于等 ...
随机推荐
- ConfigurationManager 读写AppSettings键值对
using System; using System.Configuration; namespace ConsoleApplication1 { class Program { static voi ...
- [2016北京集训测试赛5]小Q与内存-[线段树的神秘操作]
Description Solution 哇真的异常服气..线段树都可以搞合并和拆分的啊orzorz.神的世界我不懂 Code #include<iostream> #include< ...
- 【转载】Direct3D纹理映射
原文:Direct3D纹理映射 更详细的文章:DirectX中的纹理映射相关技术 (转) 创建纹理对象 1: HRESULT CreateTexture( 2: UINT Width,//宽度 ...
- 【LG3703】[SDOI2017]树点涂色
[LG3703][SDOI2017]树点涂色 题面 洛谷 题解 更博辣,更博辣!!! 猪年的第一篇博客 一次只能染根到\(x\),且染的颜色未出现过 这句话是我们解题的关键. 设\(x\)到根的颜色数 ...
- mybatis拦截器使用
目录 mybatis 拦截器接口Interceptor spring boot + mybatis整合 创建自己的拦截器MyInterceptor @Intercepts注解 mybatis拦截器入门 ...
- idea项目 run、debug变灰色的问题
点击如图所示位置的下来三角按钮,然后选择Edit Configurations,或者点击菜单栏Run>Edit Configurations 2 在运行配置窗口,选择一条springboot的运 ...
- Vue2 v-bind:href 中如何使用过滤器
<a class="topic_title" v-bind:href="info.id|getTitleHref" v-bind:title=" ...
- 【sed】常用命令
替换 替换某一整行 sed '1c hello' test #将第一行替换为hello str1替换为str2 sed 's/^str1.*/str2/' filename #以str1开头 sed ...
- Prometheus+Grafana监控部署实践
参考文档: Prometheus github:https://github.com/prometheus grafana github:https://github.com/grafana/graf ...
- 无人驾驶技术之Kalman Filter原理介绍
基本思想 以K-1时刻的最优估计Xk-1为准,预测K时刻的状态变量Xk/k-1,同时又对该状态进行观测,得到观测变量Zk,再在预测与观之间进行分析,或者说是以观测量对预测量进行修正,从而得到K时刻的最 ...