noip第34课作业
- 1. 信息加密
【问题描述】
在传递信息的过程中,为了加密,有时需要按一定规则将文本转换成密文发送出去。有一种加密规则是这样的:
1. 对于字母字符,将其转换成其后的第3个字母。例如:A→D,a→d,X→A,x→a;
2. 对于非字母字符,保持不变。
现在,请你根据输入的一行字符,输出其对应的密码。
【输入格式】
输入一个字符串(字符串长度不超过100)。
【输出格式】
输出加密后的字符串。
【输入样例】I(2016)love(08)China(15)!
【输出样例】L(2016)oryh(08)Fklqd(15)!
#include<iostream>
#include<string>
using namespace std;
string s;
int main()
{
cin >> s;
for(int i = ; i < s.size(); i++){
if((s[i] >= 'A' && s[i] <= 'Z') || (s[i] >= 'a' && s[i] <= 'z')){
if(s[i] == 'X'){
s[i] = 'A';
}
else if(s[i] == 'Y'){
s[i] = 'B';
}
else if(s[i] == 'Z'){
s[i] = 'C';
}
else if(s[i] == 'x'){
s[i] = 'a';
}
else if(s[i] == 'y'){
s[i] = 'b';
}
else if(s[i] == 'z'){
s[i] = 'c';
}
else{
s[i] += ;
}
}
}
cout << s << endl;
return ;
}
- 2. 变换密码
【问题描述】
一密码变换规则如下:一个正整数对应一个字符;如果该数模123的值在97-122范围,变换为ASCII为该余数对应的小写字符;如果变换不了小写字符,将该数模91,若余数在65-90范围,变换为ASCII为该余数对应的大写字符;如果变换不了大小写字符,变换为“*”。输入一个正整数,输出变换后的字符。
输入:
输入一个正整数n(1<=n<=1000)表示原始密码。
输出:
输出变换后的密码。
【样例输入】42
【样例输出】*
#include<iostream>
using namespace std;
int main() {
int n,t;
cin >> n;
t = n%;
if(t >= && t <= ) {
cout << char(t) << endl;
}
else {
t = n%;
if(t >= && t <= ) {
cout << char(t) << endl;
}
else{
cout << "*" << endl;
}
} return ;
}
- 1. 乒乓球
【问题描述】
国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中 11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白 11 分制和 21 分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。
华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截止记录末尾)。
比如现在有这么一份记录,(其中W表示华华获得一分,L表示华华对手获得一分):
WWWWWWWWWWWWWWWWWWWWWWLW
在 11 分制下,此时比赛的结果是华华第一局 11 比 0 获胜,第二局 11 比 0 获胜,正在进行第三局,当前比分 1 比 1 。而在 21 分制下,此时比赛结果是华华第一局 21 比0 获胜,正在进行第二局,比分 2 比 1 。如果一局比赛刚开始,则此时比分为 0 比 0 。直到分差大于或者等于 2 ,才一局结束。
你的程序就是要对于一系列比赛信息的输入( WL 形式),输出正确的结果。
输入格式:
每个输入包含若干行字符串,字符串有大写的 W 、 L 和 E 组成。其中 E 表示比赛信息结束,程序应该忽略E之后的所有内容。
输出格式:
输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。其中第一部分是 11 分制下的结果,第二部分是 21 分制下的结果,两部分之间由一个空行分隔。
【输入样例】
WWWWWWWWWWWWWWWWWWWW
WWLWE
【输出样例】
11:0
11:0
1:1
21:0
2:1
#include<iostream>
#include<cstdlib>
#include<string>
using namespace std;
int main()
{
string s1,s2;//方便输入
while(getline(cin,s2))s1+=s2;//输入字符串
int i=,a=,b=;//i是指针,a统计了赢的次数,b是输的次数
while(s1[i]!='E')//只要不是结束符,现在是判断11分制
{
switch(s1[i])//switch判断s1[i]
{
case 'W':a++;break;//如果s1[i]是‘W’,累计到a里
case 'L':b++;break;//如果s1[i]是‘E’,累计到b里
}
if((a>=||b>=)&&(abs(a-b)>=))//是否到达条件,一盘有没有结束
{
cout<<a<<":"<<b<<endl;//输出
a=;b=;//清零,下一盘
}
i++;//下一个字符
}
cout<<a<<":"<<b<<endl;//剩下的也要输完
cout<<endl;//换行隔开
a=b=;i=;//清零,换了一个分制
while(s1[i]!='E')//同理
{
switch(s1[i])
{
case 'W':a++;break;
case 'L':b++;break;
}
if((a>=||b>=)&&(abs(a-b)>=))
{
cout<<a<<":"<<b<<endl;
a=;b=;
}
i++;
}
cout<<a<<":"<<b<<endl;
return ;
}
- 2. 流星
【问题描述】
从坐标(0,0)到(w,h)是一个矩形相机的视野范围,注意矩形的四条线看拍不到物体的。w和h均为整数。P代表不同的流星,有不同的方向和速度。例如流星p的初始坐标是(1,3),速度v是(-2,5),则时间t为0.5时,流星的坐标为(1,3)+0.5*(-2,5)=(0.5,5).
问最多能照的多少颗流星。
输入:
输入第一行为两个整数w,h,分别表示相机视野范围的宽度和高度(从坐标零点开始),
第二行为整数n,表示有n颗流星,以下n行,每行4个整数,分别用空格分开,每行的前两个整数表示流星的初始坐标,后两个整数表示流星的速度方向。
输出:
输出仅一行,表示最多能照到的流星个数。
【输入样例】
4 2
2
-1 1 1 -1
5 2 -1 -1
【输出样例】
1
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 100000 + 10
using namespace std;
typedef struct
{
int mk;
double time;
}NODE;
NODE node[N+N];
bool camp(NODE a ,NODE b)
{
return a.time < b.time || a.time == b.time && a.mk < b.mk;
}
double Max(double x ,double y)
{
return x > y ? x : y;
} double Min(double x ,double y)
{
return x < y ? x : y;
}
void Update(int x ,int a ,int w ,double& L ,double& R)
{
if(a == )
{
if(x <= || x >= w) R = L - ;
}
else if(a > )
{
L = Max(L ,-(double)x / a);
R = Min(R ,(double)(w - x) / a);
}
else
{
L = Max(L ,(double)(w - x) / a);
R = Min(R ,-(double)x / a);
} } int main ()
{
int t ,w ,h ,n ,i;
int x ,y ,a ,b;
//scanf("%d" ,&t);
//while(t--)
//{
scanf("%d %d" ,&w ,&h);
scanf("%d" ,&n);
int nowid = ;
for(i = ;i <= n ;i ++)
{
scanf("%d %d %d %d" ,&x ,&y ,&a ,&b);
double L = ,R = ;
Update(x ,a ,w ,L ,R);
Update(y ,b ,h ,L ,R);
if(L < R)
{
node[++nowid].time = L;
node[nowid].mk = ;
node[++nowid].time = R;
node[nowid].mk = -;
}
}
int Ans = ;
sort(node + ,node + nowid + ,camp);
int sum = ;
for(i = ;i <= nowid ;i ++)
{
sum += node[i].mk;
if(Ans < sum) Ans = sum;
}
printf("%d\n" ,Ans);
// }
return ;
}
noip第34课作业的更多相关文章
- noip第19课作业
1. 谁考了第K名 在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩. [输入格式] 第一行有两个整数,分别是学生的人数n(1<=n<=100 ...
- noip第5课作业
1. 计算税收 [问题描述] 对某产品征收税金,在产值1万元以上收税5%:在1万元以下但在5000元或者以上的征收税3%:在5000元以下但在1000元或以上征收税2%:1000元以下的免收税 ...
- noip第33课作业
1. 排座椅 [问题描述] 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同 ...
- noip第29课作业
1. 钢条切割 [问题描述] 一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi.那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大. ...
- noip第28课作业
分段数列 [问题描述] 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求. 输入格式: 输入第1行包含两个正整 ...
- noip第27课作业
1. 繁忙的都市 [问题描述] 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个 ...
- noip第26课作业
1. 信使 [问题描述] 战争时期,前线有n个哨所,每个哨所可能会与其他若干个哨所之间有通信联系.信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位).指挥部设在第一个哨所.当指 ...
- noip第25课作业
1. 求一个有向图所有顶点入度的和 输入有向图的顶点个数,边数以及各顶点之间的关联情况,要求求出这个有向图的所有顶点入度的总和. [输入格式] 第1行:2个空格分开的整数n(2<=n< ...
- noip第24课作业
1. 马走日 [问题描述] 马在中国象棋以日子形规则移动.请编写一段程序给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. ...
随机推荐
- 【Android优化篇】提升Activity加载速度的方法
文章转自:http://www.jianshu.com/p/2007ca0290d3 作者: CoderFan 前言 这个也是我面试遇到的问题,当时只回答了一种情况,异步加载数据,没想到别的方式,回来 ...
- linux RCU锁机制分析
openVswitch(OVS)源代码之linux RCU锁机制分析 分类: linux内核 | 标签: 云计算,openVswitch,linux内核,RCU锁机制 | 作者: yuzhih ...
- iOS.CocoaPods.0
1. CocoaPods CocoaPods 是Objective-C (iOS and OS X) projects 的依赖管理器. A CocoaPod (singular) is a speci ...
- jsonp,ajax,json问题
JSONP技术 JSONP是解决跨域问题的一种常见方式 跨域问题,因为浏览器有同源策略,所以当不同域间进行数据交互的时候就会出现跨域问题 同源策略:只有在同协议.同域名.同端口的情况下才能进去数据交互 ...
- [Robot Framework] 通过Robot Remote Server调用White Library测试WPF开发的桌面产品
参考 : https://github.com/jatalahd/WhiteRobotLibrary 通过此源代码编译WhiteRobotLibrary.dll,然后把高亮标记的这5个dll全部拷贝到 ...
- Maximum Subarray LT53
Given an integer array nums, find the contiguous subarray (containing at least one number) which has ...
- 基于centos6.5 hadoop 集群搭建
1.修改Linux主机名2.修改IP3.修改主机名和IP的映射关系 ######注意######如果你们公司是租用的服务器或是使用的云主机(如华为用主机.阿里云主机等) /etc/hosts里面要配置 ...
- Oracle安装配置
很久没有使用Oracle了,一直做产品使用Mysql,前段时间使用Oracle的一些新经验,占位. 需要整理下....
- 20155312 2016-2017-2 《Java程序设计》第五周学习总结
20155312 2016-2017-2 <Java程序设计>第五周学习总结 课堂笔记 十个基本类型 命令:ascii打印ascii值, od -tx1 Test.java用十六进制查看代 ...
- linux代码笔记
sudo passwd root更新root密码 软件包管理及shell命令_deb软件包管理一_笔记:dpkj -i 安装dpkj -r 移除dpkj -P 全部移除dpkj -L 列出安装清单dj ...