【NOIP2016提高A组模拟9.17】序列
来源:互联网 发布:淘宝店库存软件 编辑:程序博客网 时间:2024/05/18 11:27
题目
分析
首先用
根据粉刷栅栏,先不管mod 4的情况,答案就是
那我们刚才做个差分
当我们给i增加高度,
那么
当我们给区间增加高度,那么因为中间的+4-4抵消了,所以
那么我们考虑
就读者私下讨论。
#include <cmath>#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <queue>const int maxlongint=2147483647;const int mo=1000000007;const int N=100005;using namespace std;int a[N],n,q;int main(){ scanf("%d",&q); while(q--) { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++) { int x; scanf("%d",&x); a[i]=(x-a[i]+4)%4; } int t2=0,t3=0,ans=0; for(int i=1;i<=n;i++) { a[i]-=a[i+1]; ans+=max(a[i],0); } for(int i=1;i<=n;i++) { if(a[i]==3) t3++; else if(a[i]==2) t2++; else if(a[i]==-2) { if(t3) { t3--; t2++; ans--; } } else if(a[i]==-3) { if(t3) { t3--; ans-=2; } else if(t2) { t2--; ans--; } } } cout<<ans<<endl; }}
1 0
- 【NOIP2016提高A组模拟9.17】序列
- 【NOIP2016提高A组模拟9.17】序列
- 【NOIP2016提高A组模拟9.17】序列
- JZOJ4788. 【NOIP2016提高A组模拟9.17】序列
- 【JZOJ4788】【NOIP2016提高A组模拟9.17】序列
- NOIP2016提高A组模拟9.17 总结
- NOIP2016提高A组模拟9.17总结
- NOIP2016提高A组模拟9.17
- 【NOIP2016提高A组模拟9.17】数格子
- JZOJ4787. 【NOIP2016提高A组模拟9.17】数格子
- JZOJ 4787 【NOIP2016提高A组模拟9.17】数格子
- {题解}[jzoj4787]【NOIP2016提高A组模拟9.17】数格子
- 【JZOJ4787】【NOIP2016提高A组模拟9.17】数格子
- 【NOIP2016提高A组模拟7.15】立方体
- 计数【NOIP2016提高A组模拟7.15】
- 【NOIP2016提高A组模拟7.17】寻找
- 【NOIP2016提高A组模拟7.17】寻找
- 【NOIP2016提高A组模拟7.17】锦标赛
- Unity3D深入浅出 - 物理引擎之刚体部件(Rigidbody)
- 转屏
- 【Bash百宝箱】shell内建命令之cd、getopts
- leetcode 57. Insert Interval
- 【NOIP模拟】序列
- 【NOIP2016提高A组模拟9.17】序列
- 对象和继承面试要点
- 前端笔试(二)
- java程序设计之内部类
- VS2012运行Opencv2.4.14 sample步骤
- Android开发之DatePickerDialog
- 用两个栈实现队列 与 用两个队列实现栈
- HashMap Hashtable区别
- 行转列 列转行