HDU5198 Strange Class

问题描述
在Vivid的学校里,有一个奇怪的班级(SC).在SC里,这些学生的名字非常奇怪。他们的名字形式是这样的anbncn(a,b,c两两不相同。).例如,叫”abc”,”ddppqq”的学生是在SC里的,然而叫”aaa”,”ab”,”ddppqqq”的同学并不是在SC里的。
Vivid交了许多的朋友,他想知道他们之中哪些人是在SC里的。
输入描述
多组测试数据(大概10组),每一个数据在一行中给出一个字符串S,代表Vivid一个朋友的名字。
请处理到文件末尾。 [参数约定]
1≤|S|≤10.
|S| 是指S的长度.
S 只包含小写字母.
输出描述
对于每一个数据,如果Vivid的朋友是SC里的,那么输出YES,否则输出NO。
输入样例
abc
bc
输出样例
YES
NO

思路:模拟就行,这场比赛题目都很水

 #include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#define maxn 1000
using namespace std;
char ch[maxn],cha[];
int a[];
int main()
{
int n;
while(scanf("%s",ch+)!=EOF)
{
memset(a,,sizeof(a));
int len=strlen(ch+);
cha[]=ch[];
for(int i=;i<=len;i++)
{
if(ch[i]==cha[])a[]++;else break;
}
cha[]=ch[a[]+];
for(int i=a[]+;i<=len;i++)
{
if(ch[i]==cha[])a[]++;else break;
}
cha[]=ch[a[]+a[]+];
for(int i=a[]+a[]+;i<=len;i++)
{
if(cha[]==ch[i])a[]++;else break;
}
if(a[]+a[]+a[]!=len){puts("NO");continue;}
if(a[]!=a[] || a[]!=a[] || a[]!=a[]){puts("NO");continue;}
if(cha[]==cha[] || cha[]==cha[] || cha[]==cha[]){puts("NO");continue;}
puts("YES");
}
return ;
}

HDU5199 Gunner

问题描述
很久很久以前,有一个叫Jack的枪手。他非常喜欢打猎。一天,他去了一个小树林。那儿有n只鸟,还有n棵树。第i只鸟站在第i棵树的顶端。这些树从左到右排成一条直线。每一棵树都有它的高度。Jack站在最左边那棵树的左边。当Jack在高度为H的地方向右发射一棵子弹时,站在高度为H的树上的鸟儿就会落下来。
Jack会射击多次,他想知道每次射击会有多少鸟儿落下来。
输入描述
多组测试数据(大概5组),每一组的第一行给出n,m,n表示有n棵树和n只鸟,m表示Jack会射击m次。
在第二行,有n个整数, h[1],h[2],h[3],…,h[n]表示这些树的高度。
在第三行,有m个整数, q[1],q[2],q[3],…,q[m]表示Jack射击的高度。 [参数约定]
1≤n,m≤1000000(106)
1≤h[i],q[i]≤1000000000(109)
输出描述
对于每一个q[i],在一行中输出Jack射落了几只鸟。
输入样例
4 3
1 2 3 4
1 1 4
输出样例
1
0
1

思路:大水体啊啊啊啊啊啊,map就可以过,我求穩作死敲了个hash,慢了别人好多TUT

 #include<cstdio>
#include<iostream>
#include<cstring>
#define maxn 1000009
#define MOD 10000009
using namespace std;
int head[MOD+],nex[maxn],a[maxn],value[maxn];
long long point[maxn],now=;
long long n,k;
int add(int x,int y)
{
nex[++now]=head[x];
head[x]=now;
point[now]=y;
value[now]=;
}
void insert(long long x)
{
long long u=x%MOD;if(u<)u*=-;
for(int i=head[u];i;i=nex[i])
{
if(point[i]==x){value[i]++;return;}
}
add(u,x);
}
int find(int x)
{
int u=x%MOD;if(u<)u*=-;
for(int i=head[u];i;i=nex[i])
{
if(point[i]==x){int u=value[i];value[i]=;return u;}
}
return ;
}
int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>''){ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int main()
{
int n,m,h,q;
while(scanf("%d%d",&n,&m)!=EOF)
{
now=;
memset(head,,sizeof(head));
memset(value,,sizeof(value));
for(int i=;i<=n;i++)
{
h=read();
insert(h);
}
for(int i=;i<=m;i++)
{
q=read();
int u=find(q);
printf("%d\n",u);
}
}
return ;
}

HDU5200 Trees

问题描述
今天CodeFamer去坎树。有N棵树排成一排。他们被从1到N标号。第i号树的高度为hi。两棵未被坎掉的树编号分别为x,y当且仅当他们满足如下条件中一条时,他们是属于同一个块的:
1) x+1=y 或 y+1=x;
2) 存在一个棵未被坎掉的树,编号为z,x和z在同一个块并且y和z也在同一个块。
现在CodeFamer想要坎掉一些高度不大于某个值的树,坎掉之后会形成多少个块呢?
输入描述
多组测试数据(大概15组)
对于每一组数据,第一行包含两个整数N和Q,以一个空格分开,N表示有N棵树,Q表示有Q个查询。
在接下来的N行中,会出现h[1],h[2],h[3],…,h[N],表示N棵树的高度。
在接下来的Q行中,会出现q[1],q[2],q[3],…,q[Q]表示CodeFamerr查询。 请处理到文件末尾。 [参数约定]
1≤N,Q≤50000
0≤h[i]≤1000000000(109)
0≤q[i]≤1000000000(109)
输出描述
对于每一个q[i],输出CodeFamer坎掉高度不大于q[i]的树之后有多少个块。
思路:离线输入,对于每个在范围内的树砍掉,维护块数就可以了,一开始想用并查集维护的,后来发现根本不用
 #include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#define maxn 60000
using namespace std;
int ansc=,ans[maxn],father[maxn],visit[maxn];
struct T
{
int x;int y;
}q[maxn],a[maxn];
int cmp(T x,T y)
{
return x.x>y.x;
}
int cmp2(T x,T y)
{
return x.x<y.x;
} int main()
{
int n,qi;
while(scanf("%d%d",&n,&qi)!=EOF)
{
memset(visit,,sizeof(visit));
ansc=;
for(int i=;i<=n;i++)father[i]=i;
for(int i=;i<=n;i++)
{
scanf("%d",&a[i].x);
a[i].y=i;
}
sort(a+,a++n,cmp);
for(int i=;i<=qi;i++)
{
scanf("%d",&q[i].x);
q[i].y=i;
}
sort(q+,q++qi,cmp);
int u=;
for(int i=;i<=qi;i++)
{
while(a[u].x>q[i].x && u<=n)
{
visit[a[u].y]=;
ansc++;
if(visit[a[u].y-])ansc--;
if(visit[a[u].y+])ansc--;
u++;
}
ans[q[i].y]=ansc;
}
for(int i=;i<=qi;i++)printf("%d\n",ans[i]);
}
return ;
}

BestCoder Round #36的更多相关文章

  1. BestCoder Round #36 [B] Gunner

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5199 先对树的高度排序,然后对每次射击高度二分查找即可,打过之后数目变为0. #include< ...

  2. BestCoder Round #36 (hdu5200)Strange Class(离线)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Trees Time Limit: 2000/1000 MS (Java/Othe ...

  3. BestCoder Round #36 (hdu5199)Gunner(水题)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Gunner Time Limit: 8000/4000 MS (Java/Oth ...

  4. BestCoder Round #36 (hdu5198)Strange Class(水题)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud Strange Class Time Limit: 2000/1000 MS (J ...

  5. 二分查找 BestCoder Round #36 ($) Gunner

    题目传送门 /* 题意:问值为x的个数有几个,第二次查询就是0 lower/upper_bound ()函数的使用,map也可过,hash方法不会 */ #include <cstdio> ...

  6. bestcoder Round #7 前三题题解

    BestCoder Round #7 Start Time : 2014-08-31 19:00:00    End Time : 2014-08-31 21:00:00Contest Type : ...

  7. hdu 5667 BestCoder Round #80 矩阵快速幂

    Sequence  Accepts: 59  Submissions: 650  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536 ...

  8. BestCoder Round #89 02单调队列优化dp

    1.BestCoder Round #89 2.总结:4个题,只能做A.B,全都靠hack上分.. 01  HDU 5944   水 1.题意:一个字符串,求有多少组字符y,r,x的下标能组成等比数列 ...

  9. BestCoder Round #90 //div all 大混战 一题滚粗 阶梯博弈,树状数组,高斯消元

    BestCoder Round #90 本次至少暴露出三个知识点爆炸.... A. zz题 按题意copy  Init函数 然后统计就ok B. 博弈 题  不懂  推了半天的SG.....  结果这 ...

随机推荐

  1. windows下jdk环境变量配置

    JAVA_HOMEC:\Program Files\Java\jdk1.8.0_131 JMETER_HOMEC:\jmeter\jmeter3.2 CLASSPATH%JAVA_HOME%\lib; ...

  2. Spring MVC能响应HTTP请求的原因?

    很多Java面试官喜欢问这个问题: 一个Spring MVC的项目文件里,开发人员没有开发自己的Servlet,只通过注解@RequestMapping定义了方法home能响应发向 /mvc/test ...

  3. 分享一个WebGL开发的网站-用JavaScript + WebGL开发3D模型

    这张图每位程序员应该都深有感触. 人民心目中的程序员是这样的:坐在电脑面前噼里啪啦敲着键盘,运键如飞. 现实中程序员是这样的:编码5分钟,调试两小时. 今天我要给大家分享一个用WebGL开发的网站,感 ...

  4. SQLite-表达式

    SQLite -表达式 一个表达式是一个或多个值的组合,运算符和SQL函数,评价一个值. SQL表达式就像公式和都写在查询语言.您还可以使用为特定的数据集查询数据库. 语法: 考虑到SELECT语句的 ...

  5. UVA 12563 Jin Ge jin Qu [h] ao 劲歌金曲 (01背包)

    每首只能唱一次,而且中间不能不唱歌,所以先把状态赋值为-1,以区别合法状态和非法状态,在唱歌曲目最多的条件下,离开时间应该尽量晚. 状态定义f[i][j]考虑前i首歌唱歌时间为j的最大唱歌曲目 #in ...

  6. Spring Boot配置文件大全

    Spring Boot配置文件大全 ############################################################# # mvc ############## ...

  7. urllib基础-利用网站结构爬取网页-百度搜索

    有的时候爬取网页,可以利用网站额结构特点爬取网页 在百度搜索框中输入搜索内容,单击搜索,浏览器会发送一个带有参数的url请求.尝试删除其中的一些参数,只剩下wd这个参数.发现wd是搜索内容.这样程序可 ...

  8. 带二级目录的Nginx配置------目前找到的最简单的方法

    由于项目不知一个,所以不得不为每一个项目建一个专有的文件夹,这就导致了在配置nginx的时候会出现二级目录 目前找到的最简单的方法     - step1:修改 vue.config.js   添加配 ...

  9. URL URI URN的区别

    下面这张图可以完美的解释他们三者之间的关系 URI包含URL和URN Uniform Resource Identifier :统一资源标志符,用于标识某一互联网资源 Uniform Resoutce ...

  10. python读取.mat文件

    可以先看一下.mat中存了些什么: import scipy.io as sio box_file = '/home/bnrc/formatm/test/1479504458876408533_box ...