1893. [国家集训队2011]等差子序列(bitset)
★★ 输入文件:nt2011_sequence.in
输出文件:nt2011_sequence.out
简单对比
时间限制:0.3 s 内存限制:512 MB
【试题来源】
【问题描述】
【输入格式】
下接T组数据,每组第一行一个整数N,每组第二行为一个1到N的排列,数字两两之间用空格隔开。
【输出格式】
【样例输入】
3
1 3 2
3
3 2 1
【样例输出】
Y
【数据说明】
对于30%的数据,N<=1000
对于100%的数据,N<=10000,T<=7
对于100%的数据,时间限制为0.3s。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<bitset>
using namespace std;
using std::bitset;
const int MAXN=;
bitset<MAXN>bit;
int a;
inline void read(int &n)
{
char c='+';int x=;bool flag=;
while(c<''||c>''){c=getchar();if(c=='-')flag=;}
while(c>=''&&c<=''){x=x*+(c-);c=getchar();}
n=flag==?-x:x;
}
int main()
{
freopen("nt2011_sequence.in","r",stdin);
freopen("nt2011_sequence.out","w",stdout);
int T;
read(T);
while(T--)
{
bit.reset();
int n;
read(n);
bool flag=;
for(int i=;i<=n;i++)
{
read(a);
if(flag)continue;
bit.set(a);
for(int j=a-;j!=;j--)
{
int k=a*-j;
if(k>n)continue;
if(bit.test(j)^bit.test(k))
{
flag=;
break;
}
}
}
flag==?printf("Y\n"):printf("N\n");
}
return ;
}
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
#include<bitset>
using namespace std;
const int SIZEN=;
int N;
int A[SIZEN];
bitset<SIZEN> pre,suf;
bool test(void){//只能检测递增的
pre.reset();suf.reset();
for(int i=;i<=N;i++) suf[i]=;
static bitset<SIZEN> tmp;
for(int i=;i<=N;i++){
suf[A[i]]=;
if(i>) pre[N+-A[i-]]=;
tmp=(suf>>A[i])&(pre>>(N+-A[i]));
if(tmp.any()) return true;
}
return false;
}
void work(void){
scanf("%d",&N);
for(int i=;i<=N;i++) scanf("%d",&A[i]);
if(test()){
printf("Y\n");
return;
}
reverse(A+,A++N);
if(test()){
printf("Y\n");
return;
}
printf("N\n");
}
int main(){
freopen("nt2011_sequence.in","r",stdin);
freopen("nt2011_sequence.out","w",stdout);
int T;
scanf("%d",&T);
while(T--) work();
return ;
}
一份可以A的bool
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<bitset>
using namespace std;
using std::bitset;
const int MAXN=;
bool bit[MAXN];
int a;
inline void read(int &n)
{
char c='+';int x=;bool flag=;
while(c<''||c>''){c=getchar();if(c=='-')flag=;}
while(c>=''&&c<=''){x=x*+(c-);c=getchar();}
n=flag==?-x:x;
}
int main()
{
freopen("nt2011_sequence.in","r",stdin);
freopen("nt2011_sequence.out","w",stdout);
int T;
read(T);
while(T--)
{
memset(bit,,sizeof(bit));
//bit.reset();
int n;
read(n);
bool flag=;
for(int i=;i<=n;i++)
{
read(a);
if(flag)continue;
bit[a]=;
for(int j=a-;j!=;j--)
{
int k=a*-j;
if(k>n)continue;
if(bit[j]^bit[k])
{
flag=;
break;
}
}
}
flag==?printf("Y\n"):printf("N\n");
}
return ;
}
1893. [国家集训队2011]等差子序列(bitset)的更多相关文章
- AC日记——[国家集训队2011]旅游(宋方睿) cogs 1867
[国家集训队2011]旅游(宋方睿) 思路: 树链剖分,边权转点权: 线段树维护三个东西,sum,max,min: 当一个区间变成相反数时,sum=-sum,max=-min,min=-max: 来, ...
- cogs 1901. [国家集训队2011]数颜色
Cogs 1901. [国家集训队2011]数颜色 ★★★ 输入文件:nt2011_color.in 输出文件:nt2011_color.out 简单对比时间限制:0.6 s 内存限制 ...
- BZOJ 2150 cogs 1861 [国家集训队2011]部落战争
题目描述 lanzerb的部落在A国的上部,他们不满天寒地冻的环境,于是准备向A国的下部征战来获得更大的领土. A国是一个M*N的矩阵,其中某些地方是城镇,某些地方是高山深涧无人居住.lanzerb把 ...
- happiness[国家集训队2011(吴确)]
[试题来源] 2011中国国家集训队命题答辩 [问题描述] 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科 ...
- COGS1882 [国家集训队2011]单选错位
★ 输入文件:nt2011_exp.in 输出文件:nt2011_exp.out 简单对比时间限制:1 s 内存限制:512 MB [试题来源] 2011中国国家集训队命题答辩 [问题 ...
- bzoj2144 【国家集训队2011】跳跳棋
Description 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子.我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位置.我们要通过最少的跳动把他 ...
- COGS.1901.[模板][国家集训队2011]数颜色(带修改莫队)
题目链接 COGS BZOJ2120 洛谷P1903 /* Add和Subd函数中的vis不能直接设为=1或=0 比如 l=1,r=0 -> l=3,r=5 时,[1,5]的vis标记全都是1 ...
- COGS1871 [国家集训队2011]排队(魏铭)
bzoj:http://www.lydsy.com/JudgeOnline/problem.php?id=2141 cogs:http://cogs.pro:8080/cogs/problem/pro ...
- [国家集训队2011]happiness
Description 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友 ...
随机推荐
- poj 2777 Count Color(线段树、状态压缩、位运算)
Count Color Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 38921 Accepted: 11696 Des ...
- ZOJ 3494 BCD Code (AC自己主动机 + 数位DP)
题目链接:BCD Code 解析:n个病毒串.问给定区间上有多少个转换成BCD码后不包括病毒串的数. 很奇妙的题目. . 经典的 AC自己主动机 + 数位DP 的题目. 首先使用AC自己主动机,得到b ...
- DevExpress TreeList控件的复选框
作者:jiankunking 出处:http://blog.csdn.net/jiankunking TreeList控件能够同一时候显示树结构和其它数据列,即在一个列上建立父子关系展开或收缩,同一时 ...
- node18---Mongoose
二.索引index 数据库中,根据一个字段的值,来寻找一个文档,是很常见的操作.比如根据学号来找一个学生. 这个学号,是唯一的,只要有学号,就能唯一确认一个学生的文档.学号这个属性,就非常适合建立索引 ...
- angular4(3)angular脚手架引入scss
scss..sass....sccc...ssss...ccccc......MMP················· 先说下scss和sass的异同: SCSS 是 Sass 3 引入新的语法,其语 ...
- JAXB xml与javaBean的转换
转自:https://blog.csdn.net/lydong_/article/details/79812626 `1. 1.不认识到犯错,然后得到永久的教训. 也不是所谓的教训吧,真正的教训来自于 ...
- [JZOJ 5906] [NOIP2018模拟10.15] 传送门 解题报告(树形DP)
题目链接: https://jzoj.net/senior/#contest/show/2528/2 题目: 8102年,Normalgod在GLaDOS的帮助下,研制出了传送枪.但GLaDOS想把传 ...
- jqGrid添加删除功能(不和数据库交互)
jqGrid添加删除功能(不和数据库交互) 一.背景需求 项目中需要在前端页面动态的添加行,删除行,上下移动行等,同时还不和数据库交互.一直在用jqGrid展示表格的我们,从没有深入的研究过它,当然看 ...
- CSS弹性盒模型flex概念
盒模型分为:标准w3c盒模型.IE盒模型.以及css中的伸缩盒模型. 先说CSS的伸缩盒模型:flex模型是CSS3引入的新的布局模型,是flexible box的缩写,一般称之为弹性盒模型.和CSS ...
- 用SqlDataReader返回多个结果集
using System; using System.Data; using System.Data.SqlClient; namespace Northwind { class Program { ...