CODEVS 必做题:3149、2821、1531、3369、1230
Wikioi上有个人叫小融,他喜欢改名。
现在他的要求变了,只要是英文字母就是他的名字。
先给你N个名字,请你一一判断是不是小融。
本题还加强了测试数据
N
N行名字(全部为字符)
N行,YES或NO(大写)
3
&6*14315
Rinkement
micsloox
NO
YES
YES
对于40%的数据 N≤10 名字长度≤100
对于100%的数据 N≤50 名字长度≤100000
#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 ;
}
天使城有一个火车站,每辆火车都从A方向驶入车站,
再从B方向驶出车站。
为了调度火车,火车站设有停放轨道,可存放5辆火车。已知从A进入车站顺序为1、2、3……。现在给你一个调度方案,判断是否可行,如果可行,输出出站顺序。
有以下几种调度方法:
A. 将A上的头一辆车驶出B方向
B. 将A上的头一辆车停入暂停轨道
C. 将暂停轨道上最外面的车驶出B方向
输入第一行一个整数N(n<30)表示调度方案步骤数目。
下一行一个字符串,有N个大写字母,表示调度方法。
输出若不可行(暂停站满了还停车、暂停站空了还出车),则输出一行“No”。
若可行,输出一行“Yes”,再输出若干行,每行一个整数,表示车出站序列。
[样例输入1]
6
ABBCCA
[样例输入2]
5
BACAC
[样例输出1]
Yes
1
3
2
4
[样例输出2]
No
如题
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 ;
}
Rocky山脉有n个山峰,一字排开,从西向东依次编号为1, 2, 3, ……, n。每个山峰的高度都是不一样的。编号为i的山峰高度为hi。
小修从西往东登山。每到一座山峰,她就回头观望自己走过的艰辛历程。在第i座山峰,她记录下自己回头能看到的山峰数si。
何谓“能看到”?如果在第i座山峰,存在j<k<i,hj<hk,那么第j座山峰就是不可见的。除了不可见的山峰,其余的山峰都是可见的。
回家之后,小修把所有的si加起来得到S作为她此次旅行快乐值。现在n座山峰的高度都提供给你了,你能计算出小修的快乐值吗?
第一行一个整数n(n<=15000)。
第i+1(1<=i<=n)行是一个整数hi(hi<=109)。
仅一行:快乐值。
5
2
1
3
5
9
5
说明: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 ;
}
神牛有很多…当然…每个同学都有自己衷心膜拜的神牛.
某学校有两位神牛,神牛甲和神牛乙。新入学的N位同学们早已耳闻他们的神话。所以,已经衷心地膜拜其中一位了。
现在,老师要给他们分机房。
但是,要么保证整个机房都是同一位神牛的膜拜者,或者两个神牛的膜拜者人数差不超过M。
另外,现在N位同学排成一排,老师只会把连续一段的同学分进一个机房。老师想知道,至少需要多少个机房。
输入文件第一行包括N和M。
之后N行,每行一个整数,1表示神牛甲的崇拜者,2表示神牛乙的崇拜者。
输出一个整数,表示最小需要机房的数量。
5 1
2
2
1
2
2
2
对于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 ;
}
给出n个正整数,然后有m个询问,每个询问一个整数,询问该整数是否在n个正整数中出现过。
第一行两个整数 n 和m。
第二行n个正整数(1<=n<= 100000)
第三行m个整数(1<=m<=100000)
一共m行,若出现则输出YES,否则输出NO
4 2
2 1 3 4
1 9
YES
NO
所有数据都不超过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 ;
}
CODEVS 必做题:3149、2821、1531、3369、1230的更多相关文章
- codevs 必做:堆:1245、2879 并查集:1069、1074、1073
1245 最小的N个和 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 有两个长度为 N ...
- Reverse Linked List I&&II——数据结构课上的一道题(经典必做题)
Reverse Linked List I Question Solution Reverse a singly linked list. Reverse Linked List I 设置三个指针即可 ...
- Machine learning 吴恩达第二周coding作业(必做题)
1.warmUpExercise: function A = warmUpExercise() %WARMUPEXERCISE Example function in octave % A = WAR ...
- 1、Codevs 必做:2833、1002、1003、2627、2599
2833 奇怪的梦境 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description Aiden陷入了一个奇怪的梦境:他被困 ...
- codevs 必做:2776、1222
2776 寻找代表元 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 广州二中苏元实验学校一共有n个社团,分 ...
- 数据结构必做题参考:实验一T1-20,实验2 T1
实验一T1-10 #include <bits/stdc++.h> using namespace std; ; struct Book { string isbn; string nam ...
- 20175221 MyCP(课下作业,必做)
MyCP(课下作业,必做) 任务详情 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: - java MyCP -tx XXX1.txt XXX2 ...
- DP【洛谷P1704】 寻找最优美做题曲线
[洛谷P1704] 寻找最优美做题曲线 题目背景 nodgd是一个喜欢写程序的同学,前不久(好像还是有点久了)洛谷OJ横空出世,nodgd同学当然第一时间来到洛谷OJ刷题.于是发生了一系列有趣的事情, ...
- LIS【p1704】寻找最优美做题曲线
Description 洛谷OJ刷题有个有趣的评测功能,就是系统自动绘制出用户的"做题曲线".所谓做题曲线就是一条曲线,或者说是折线,是这样定义的:假设某用户在第b[i]天AC了c ...
随机推荐
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-电机实际运行距离跟给定距离不一致怎么办,如何设置Scaling Factor
有时候,让电机从0度转到绝对的360度,有时候会出现电机实际转动更多或者更少的情况. 一般是电机的编码器的Scaling Factor Numerator数值不对导致的,数值越小,则同比转过角度越 ...
- 使用zTree插件构建树形菜单
zTree下载:https://github.com/zTree/zTree_v3 目录: 就我看来,zTree较为实用的有以下几点: zTree 是一个依靠 jQuery 实现的多功能 “树插件”. ...
- jumpserver-v0.5.0 应用图解
一. Jumpserver启动 Python: 版本 3.6 1.1 启动Jumpserver 先进入Python虚拟环境 [root@localhost ~]# source /opt/py3/bi ...
- C-C Primer Plus阅读笔记
常用头: stdio.h string.h inttypes.h limits.h float.h 1.打印short.long.long long和unsigned #include <std ...
- HttpClient POST 的 UTF-8 编码问题
http://www.360doc.com/content/09/0915/15/61497_6003890.shtml不 过在实际使用中, 还是发现按照最基本的方式调用 HttpClient 时, ...
- velcoity使用说明:foreach指令
http://blog.csdn.net/madding/article/details/6641020当在velocity中需要显示一个列表信息,我们会用foreach循环输出, 要求: 假如现在需 ...
- JWT—JSON Web Token - 理解JWT网络间应用用户安全认证交互设计
原文地址:http://blog.leapoahead.com/2015/09/06/understanding-jwt/ 官网地址:https://jwt.io/ JSON Web Token(JW ...
- [原创]FreeSWITCH实现多人来电思路
[原创]FreeSWITCH实现多人来电思路 场景介绍 该篇文章主要用于介绍如何使用FreeSWITCH实现通讯系统中常见的多人来电功能. 具体场景如下: A与B正在通话中,此时C拨打A/B,Free ...
- printf不支持%lf
#include <stdio.h> int square137(int n); void p137() { double x = 3.0; int y = (int)x; printf( ...
- Java_MD5的使用
在Java中使用MD5摘要还是很方便的,直接上代码. package com.cxc.nothing; import java.nio.charset.Charset; import java.sec ...