1. 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 ;
}
  1. 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. 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 ;
}
  1. 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课作业的更多相关文章

  1. noip第19课作业

    1. 谁考了第K名 在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩. [输入格式] 第一行有两个整数,分别是学生的人数n(1<=n<=100 ...

  2. noip第5课作业

    1.     计算税收 [问题描述] 对某产品征收税金,在产值1万元以上收税5%:在1万元以下但在5000元或者以上的征收税3%:在5000元以下但在1000元或以上征收税2%:1000元以下的免收税 ...

  3. noip第33课作业

    1.    排座椅 [问题描述] 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同 ...

  4. noip第29课作业

    1.   钢条切割 [问题描述] 一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi.那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大. ...

  5. noip第28课作业

    分段数列 [问题描述] 对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求. 输入格式: 输入第1行包含两个正整 ...

  6. noip第27课作业

    1. 繁忙的都市 [问题描述] 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个 ...

  7. noip第26课作业

    1.    信使 [问题描述] 战争时期,前线有n个哨所,每个哨所可能会与其他若干个哨所之间有通信联系.信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位).指挥部设在第一个哨所.当指 ...

  8. noip第25课作业

    1.   求一个有向图所有顶点入度的和 输入有向图的顶点个数,边数以及各顶点之间的关联情况,要求求出这个有向图的所有顶点入度的总和. [输入格式] 第1行:2个空格分开的整数n(2<=n< ...

  9. noip第24课作业

    1.  马走日 [问题描述] 马在中国象棋以日子形规则移动.请编写一段程序给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. ...

随机推荐

  1. idea 高级调试技巧

    两年前写过一篇关于idea的高级用法,今天再来一篇关于调试方面的技巧讲解: 一.条件断点 循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值. 参考上图,在断点的位置,右 ...

  2. django DEBUG=False

    在django的settings中. 将DEBUG 设置为False. 会出现 #python manage.py runserver 8888 CommandError: You must set ...

  3. [网络流]Drainage Ditches(草地排水)

    Drainage Ditches(草地排水) 题目描述 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰 ...

  4. sleep()方法和yield()方法有什么区别?

    两者都是Thread类的静态方法,定义如下 public static void sleep(long millis) throws InterruptedException public stati ...

  5. [Jmeter] 在jenkins上通过命令行运行时,针对单个listener生成的chart报告,并通过邮件发送出来

    We need to use cmdrunner-2.0.jar Firstly, download cmdrunner-2.0.jar from here:https://jmeter-plugin ...

  6. paxos 练手 推进中

    学习https://github.com/huoyu820125/SecondPaxos 自己编写网络版本 在学习过程将此代码的线程 锁等改成c++11  就不用包含那么多文件 主要更改如下 // M ...

  7. android-如何获得当前正在运行的activity的相关信息

    http://blog.csdn.net/centralperk/article/details/7269326 ActivityManager manager = (ActivityManager) ...

  8. Java第14章笔记

    Java 中无参无返回值和带参带返回值习题 编写一个 Java 程序,实现输出学生年龄的最大值 要求: 1. 要求通过定义无参带返回值的方法来实现,返回值为最大年龄 2. 方法中将​学生年龄保存在数组 ...

  9. ServiceDesk Plus服务管理软件,减轻帮助台负荷,提高IT效率

  10. mysqldb mysql_config

    在安装mysqldb Python的时候会用到mysql_config,但是正常安装的MySQL环境下是没有这个文件的,这个文件在Linux下是可执行文件,所以需要到mysql官方网站上下载MySQL ...