t题目链接:http://codeforces.com/contest/1291/problem/B

思路:

用极端的情况去考虑问题,会变得很简单。

无论是单调递增,单调递减,或者中间高两边低的情况都可以变为三种模型。

(1)0,1,2,3,4........n-3,n-2,n-1

(2)n-1,n-2,n-3.....3,2,1,0

(3)0,1,2,3,4,.....n.......4,3,2,1,0

那么,我们只需要查看当前位置是否大于等于极端模型(3)在这个位置的数值,如果当前位置不满足了,

那么我们就让当前位置和之后的数值去和极端模型(3)n后面递减的数值去比较,如果还有不满足的情况说明就是“NO”了。

注意一种情况 0 1 1 0需要特殊处理一下。

 #include <iostream>
using namespace std; const int N = (int)3e5+;
int a[N]; int main(){ int T,n;
while(cin >> T){
while(T--){
cin >> n;
for(int i = ; i <= n; ++i) cin >> a[i];
int i;
bool ok = ;
//递增区间判断
for(i = ; i <= n; ++i){
if(a[i] >= i-) continue;
break;
}
// 0 1 1 0 这种情况判定
if(i <= n){
if(a[i] == a[i-] && !(a[i] >= n-i+)) ok = ;
}
//递减区间判定
for(; i <= n; ++i){
if(a[i] >= n-i) continue;
ok = ; break;
}
//if(ok) cout << "----------Yes" << endl;
//else cout << "----------No" << endl;
if(ok) cout << "----------Yes" << endl;
else cout << "----------No" << endl;
}
} }

最新文章

  1. Local gulp not found in.. on windows
  2. Windows Azure Affinity Groups (3) 修改虚拟网络地缘组(Affinity Group)的配置
  3. iOS开发小技巧--定时器的使用技巧
  4. 无法打开Android SDK Manager的解决办法
  5. CentOS安装solr 4.10.3
  6. Ogre骨骼动画
  7. HackRF实现ADS-B飞机信号跟踪定位
  8. 淘宝弹性布局方案lib-flexible研究
  9. Python重写C语言程序100例--Part9
  10. Winform WebBrowser引用IE版本问题
  11. 【教程】webstorm的破解以及汉化
  12. [Maximize ∑arr[i]*i of an Array]
  13. 爬取知名社区技术文章_pipelines_4
  14. Nginx与Nginx-rtmp-module搭建RTMP视频直播和点播服务器
  15. 项目()已配置为使用IIS Web服务器,但此计算机上...
  16. Windows server 2008 R2实现多用户远程连接 (转)
  17. Linux中man手册的使用
  18. 「TJOI / HEOI2016」字符串
  19. Java常用类(二)String类详解
  20. varnish--vcl

热门文章

  1. Gong服务实现平滑重启分析
  2. 数组翻转(非reverse)
  3. 剑指offer-字符的所有组合,复制复杂链表,二叉树中和为某一值的路径
  4. PHP操作mysql(mysqli + PDO)
  5. php压缩文件zip格式并打包(单个或多个文件压缩)
  6. Protobuf用法
  7. Linux命令详解之–chmod命令
  8. IP后面带/30 /29 /27等是什么意思?
  9. 安装Kubernetes到CentOS(Minikube)
  10. python学习随笔2:python判断和循环