3149 爱改名的小融 2

 时间限制: 2 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 
 
 
题目描述 Description

Wikioi上有个人叫小融,他喜欢改名。
现在他的要求变了,只要是英文字母就是他的名字。
先给你N个名字,请你一一判断是不是小融。
本题还加强了测试数据

输入描述 Input Description

N
N行名字(全部为字符)

输出描述 Output Description

N行,YES或NO(大写)

样例输入 Sample Input

3
&6*14315
Rinkement
micsloox

样例输出 Sample Output

NO

YES

YES

数据范围及提示 Data Size & Hint

对于40%的数据 N≤10 名字长度≤100
对于100%的数据 N≤50 名字长度≤100000

分类标签 Tags 点此展开

 
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
#define N 100010
char str[N];int n;
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%s",str);
int flag=,len=strlen(str);
for(int j=;j<len;j++){
if((str[j]>='a'&&str[j]<='z')||(str[j]>='A'&&str[j]<='Z'));
else {flag=;break;}
}
printf("%s\n",flag?"NO":"YES");
}
return ;
}

2821 天使之城

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 查看运行结果
 
 
题目描述 Description

天使城有一个火车站,每辆火车都从A方向驶入车站,
再从B方向驶出车站。

为了调度火车,火车站设有停放轨道,可存放5辆火车。已知从A进入车站顺序为1、2、3……。现在给你一个调度方案,判断是否可行,如果可行,输出出站顺序。
有以下几种调度方法:
A. 将A上的头一辆车驶出B方向
B. 将A上的头一辆车停入暂停轨道
C. 将暂停轨道上最外面的车驶出B方向

输入描述 Input Description

输入第一行一个整数N(n<30)表示调度方案步骤数目。
下一行一个字符串,有N个大写字母,表示调度方法。

输出描述 Output Description

输出若不可行(暂停站满了还停车、暂停站空了还出车),则输出一行“No”。
若可行,输出一行“Yes”,再输出若干行,每行一个整数,表示车出站序列。

样例输入 Sample Input

[样例输入1]
6
ABBCCA
[样例输入2]
5
BACAC

样例输出 Sample Output

[样例输出1]
Yes
1
3
2
4
[样例输出2]
No

数据范围及提示 Data Size & Hint

如题

AC代码:

C1

#include<cstdio>
#include<stack>
#include<queue>
#include<iostream>
using namespace std;
char str[];int n,cur,wrong;
int main()
{
scanf("%d",&n);
scanf("%s",str+);
stack<int>s;
queue<int>q;
for(int i=;i<=n;i++){
char ch=str[i];
if(ch=='A') q.push(++cur);
else if(ch=='B'){
if(s.size()>=){wrong=;break;}
else s.push(++cur);
}
else{
if(!s.size()) {wrong=;break;}
else q.push(s.top()),s.pop();
}
}
if(wrong) printf("No\n");
else{
printf("Yes\n");
while(!q.empty()){
printf("%d\n",q.front());q.pop();
}
}
return ;
}

 C2

#include<cstdio>
#include<iostream>
#include<stack>
#include<queue>
#include<vector>
#define M 43
using namespace std;
queue<int>q;
stack<int>s;
vector<int>v;
int main(){
int n;
scanf("%d",&n);
for(int i=;i<=n;i++) q.push(i);
for(int i=;i<=n;i++){
char c;cin>>c;
if(c=='A'){
v.push_back(q.front());
q.pop();
}
if(c=='B'){
if(s.size()>=){
printf("No");
return ;
}
s.push(q.front());
q.pop();
}
if(c=='C'){
if(!s.size()){
printf("No");
return ;
}
v.push_back(s.top());
s.pop();
}
}
printf("Yes\n");
for(int i=;i<v.size();i++) printf("%d\n",v[i]);
return ;
}

1531 山峰

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 钻石 Diamond
 
 
 
题目描述 Description

Rocky山脉有n个山峰,一字排开,从西向东依次编号为1, 2, 3, ……, n。每个山峰的高度都是不一样的。编号为i的山峰高度为hi。

小修从西往东登山。每到一座山峰,她就回头观望自己走过的艰辛历程。在第i座山峰,她记录下自己回头能看到的山峰数si。

何谓“能看到”?如果在第i座山峰,存在j<k<i,hj<hk,那么第j座山峰就是不可见的。除了不可见的山峰,其余的山峰都是可见的。

回家之后,小修把所有的si加起来得到S作为她此次旅行快乐值。现在n座山峰的高度都提供给你了,你能计算出小修的快乐值吗?

输入描述 Input Description

第一行一个整数n(n<=15000)。

第i+1(1<=i<=n)行是一个整数hi(hi<=109)。

输出描述 Output Description

仅一行:快乐值。

样例输入 Sample Input

5

2

1

3

5

9

样例输出 Sample Output

5

数据范围及提示 Data Size & Hint

说明:s1=0, s2=1, s3=2, s4=1, s5=1。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<stack>
using namespace std;
int h[],n,g,ans;
stack<int>s;
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&h[i]);
ans+=s.size();
while(s.size()>&&h[i]>s.top()){
s.pop();
}
s.push(h[i]);
}
printf("%d\n",ans);
return ;
}

3369 膜拜

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 查看运行结果
 
 
题目描述 Description

神牛有很多…当然…每个同学都有自己衷心膜拜的神牛.
某学校有两位神牛,神牛甲和神牛乙。新入学的N位同学们早已耳闻他们的神话。所以,已经衷心地膜拜其中一位了。
现在,老师要给他们分机房。
但是,要么保证整个机房都是同一位神牛的膜拜者,或者两个神牛的膜拜者人数差不超过M。
另外,现在N位同学排成一排,老师只会把连续一段的同学分进一个机房。老师想知道,至少需要多少个机房。

输入描述 Input Description

输入文件第一行包括N和M。
之后N行,每行一个整数,1表示神牛甲的崇拜者,2表示神牛乙的崇拜者。

输出描述 Output Description

输出一个整数,表示最小需要机房的数量。

样例输入 Sample Input

5 1 

2  


2

样例输出 Sample Output

2

数据范围及提示 Data Size & Hint

对于30%的数据,有1≤N,M≤50;
对于100%的数据,有1≤N,M≤2500

#include<cstdio>
#include<algorithm>
using namespace std;
#define N 3010
int n,m,s1[N],s2[N],f[N];
int main(){
scanf("%d%d",&n,&m);
for(int i=,x;i<=n;i++){
f[i]=i;
scanf("%d",&x);
if(x==)
s1[i]=s1[i-]+,s2[i]=s2[i-];
else
s1[i]=s1[i-],s2[i]=s2[i-]+;
}
for(int i=;i<=n;i++){
for(int j=i;j>=;j--){
if(s1[i]-s1[j]==i-j||s2[i]-s2[j]==i-j||abs(s1[i]-s1[j]-(s2[i]-s2[j]))<=m){
f[i]=min(f[i],f[j]+);
}
}
}
printf("%d\n",f[n]);
return ;
}

1230 元素查找

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 钻石 Diamond
 查看运行结果
 
 
题目描述 Description

给出n个正整数,然后有m个询问,每个询问一个整数,询问该整数是否在n个正整数中出现过。

输入描述 Input Description

第一行两个整数 n 和m。

第二行n个正整数(1<=n<= 100000)

第三行m个整数(1<=m<=100000)

输出描述 Output Description

一共m行,若出现则输出YES,否则输出NO

样例输入 Sample Input

4 2

2 1 3 4

1 9

样例输出 Sample Output

YES

NO

数据范围及提示 Data Size & Hint

所有数据都不超过10^8

#include<cstdio>
#include<algorithm>
using namespace std;
#define N 100100
int n,m,a[N],b[N];
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<n;i++){
scanf("%d",a+i);
}
for(int i=;i<m;i++){
scanf("%d",b+i);
}
sort(a,a+n);
for(int i=;i<m;i++){
int p=lower_bound(a,a+n,b[i])-a;
printf("%s\n",a[p]==b[i]?"YES":"NO");
}
return ;
}

最新文章

  1. Moses 安装
  2. Spring init-method和destroy-method 的使用
  3. .net 中select和where的区别
  4. 阿里巴巴Java招聘
  5. IT书籍的选择与阅读
  6. ADO.NET+Access: 3,参数 @departmentName 没有默认值
  7. MyBatis:学习笔记(3)——关联查询
  8. java1 - 环境与简介
  9. 弄懂CNN,然后提升准确率4.21-4.27
  10. pycharm中连接数据库常见问题
  11. Java核心技术卷一基础知识-第10章-部署应用程序和applet-读书笔记
  12. Python3.4:splinter or traceback
  13. 消除 transition 闪屏
  14. 5E - A + B Again
  15. codevs 1795 金字塔 2
  16. vector 函数都有哪些??
  17. 关于PHP导出excel文件名乱码的问题
  18. 基础篇:6)形位公差标注(GD&amp;T标准)-总章
  19. 【SQLSERVER】如何设置权限用户
  20. Lua学习十一----------Lua迭代器

热门文章

  1. [Functional Programming 101] Crocks.js -- when to use map and when to use chain?
  2. 01-Hibernate Tools for Eclipse Plugins安装
  3. 神奇的CAReplicatorLayer
  4. python重置变量 sys.defaultencoding
  5. iOS开发-重写description方法,自定义控制台(log)信息
  6. sql分组最大值相关
  7. spring学习笔记(六)
  8. opencv的C语言接口和C++接口差别(入门篇)
  9. Webpack 的 HtmlWebpackPlugin 如何控制某个 chunks 的 inject 位置?
  10. 王立平--Eclipse中配置svn