【NOIP2007提高组】字符串展开
【题外话】这道题纯粹考验耐心,某些经常调程序调到摔键盘的人可以尝试
【题外话2】除了考耐心以外完全没有什么难点
【题外话3】也许会稍微恶心一点?
【题外话4】其实我是在别人军训的时候滚来更博客的简直233333
题目不贴了,NOIP2007原题什么的,然后就是关于某些小细节的处理,比如以‘-’开头啊,以‘-’结尾啊,还有‘--’啊,还有一种题目中提到的,‘-’两边分别是数字和字母,以及关于填充大写字母的时候数字不变什么的。
总体来说其实就是一道字符处理模拟题,稍微细心与耐心一点的都可以10minAC
我已经懒得吐槽自己的代码风格了。
#include <algorithm>
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>
#include <string>
using namespace std;
ifstream fin("expand.in");
ofstream fout("expand.out");
string old,nw;
int p1=,p2=,p3=;
void zx(int wi);
void fx(int wi);
int main(void)
{
fin>>p1>>p2>>p3;
fin>>old;
for(int i=;i<old.size();i++)
{
if(old[i]=='-'&&i>=&&i<old.size()-)
{
if(old[i-]=='-'||old[i+]=='-')
{
nw+=old[i];
continue;
}
if(old[i-]>=old[i+])
{
nw+=old[i];
continue;
}
if((old[i-]>='a'&&old[i-]<='z')&&(old[i+]<'a'||old[i+]>'z'))
{
nw+=old[i];
continue;
}
if((old[i+]>='a'&&old[i+]<='z')&&(old[i-]<'a'||old[i-]>'z'))
{
nw+=old[i];
continue;
}
if(p3==)zx(i);
else fx(i);
}
else nw+=old[i];
}
fout<<nw;
return ;
}
void zx(int wi)
{
char ja;
for(int i=;i<=(old[wi+]-old[wi-])-;i++)
{
for(int j=;j<=p2;j++)
{
if(p1==)
{
ja=old[wi-]+i;
nw+=ja;
}
if(p1==&&old[wi+]>='a'&&old[wi+]<='z')
{
ja=old[wi-]+i;
ja-='a';
ja+='A';
nw+=ja;
}
if(p1==&&(old[wi+]<'a'||old[wi+]>'z'))
{
ja=old[wi-]+i;
nw+=ja;
}
if(p1==)
{
nw+="*";
}
}
}
return;
}
void fx(int wi)
{
char ja;
for(int i=;i<=(old[wi+]-old[wi-])-;i++)
{
for(int j=;j<=p2;j++)
{
if(p1==)
{
ja=old[wi+]-i;
nw+=ja;
}
if(p1==&&old[wi+]>='a'&&old[wi+]<='z')
{
ja=old[wi+]-i;
ja-='a';
ja+='A';
nw+=ja;
}
if(p1==&&(old[wi+]<'a'||old[wi+]>'z'))
{
ja=old[wi+]-i;
nw+=ja;
}
if(p1==)
{
nw+="*";
}
}
}
return;
}
【NOIP2007提高组】字符串展开的更多相关文章
- 洛谷P1098 [NOIP2007 提高组] 字符串的展开
题目链接:https://www.luogu.com.cn/problem/P1098 这个题出的真的很有质量,这个是我见过算是复杂的模拟题了,对付这种题,一丝都不能马虎,要想实现快捷而又简便的代码设 ...
- [NOIP2007] 提高组 洛谷P1098 字符串的展开
题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母获数 ...
- Vigenère密码 2012年NOIP全国联赛提高组(字符串模拟)
P1079 Vigenère 密码 题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简 ...
- noip2007提高组题解
题外话:这一年的noip应该是最受大众关心的,以至于在百度上输入noip第三个关键字就是noip2007.主要是由于这篇文章:http://www.zhihu.com/question/2110727 ...
- Noip2007提高组总结
两道基础题,后两题比较麻烦,算法想出来后,还是一些细枝末节的问题,需要特别注意,感觉Noip的题目质量还是挺高的,每做一套,都感觉会有大大小小不同的收获,就要月考了,最后把07年的题目总结一下,算是这 ...
- luogu1097统计数字[noip2007提高组Day1T1]
题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出 ...
- 洛谷-统计数字-NOIP2007提高组复赛
题目描述 Description 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照 ...
- [NOIP2007] 提高组 洛谷P1097 统计数字
题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出 ...
- [NOIp2007提高组]矩阵取数游戏
OJ题号:洛谷1005 思路: 动态规划. 不难发现每行能够取得的最大值仅与当前行的数据有关,因此本题可以对每行的数据分别DP,最后求和. 设$f_{i,j}$表示左边取$i$个.右边取$j$个的最大 ...
随机推荐
- DBCP连接池的使用
1.新建工程 2.导入commons-dbcp commons-logging commons-pool这三个包 3.创建dbcpconfig.properties的文件 实例如下 #连接设置 dri ...
- codevs1002搭桥(prim)
题目描述: 这是道题题意有点迷(或者是我语文不好),但其实实际上求的就是图中连通块的个数,然后在连通块与连通块之间连边建图跑最小生成树.但是--这个图可能是不连通的--求桥的数量和总长 于是我立刻想到 ...
- 利用Hibernate监听器实现用户操作日志
网上搜索发现,实现用户操作日志的方式有:自定义注解方式.Hibernate拦截器方式.Hibernate监听器方式等. 1.自定义注解方式较为麻烦,需要进行操作记录的方法均需要添加注解,但是相对的操作 ...
- sql 时间格式化
sql server2000中使用convert来取得datetime数据类型样式(全) 日期数据格式的处理,两个示例: CONVERT(varchar(16), 时间一, 20) 结果:2007-0 ...
- C#笔记(一)常量
常量必须在声明时初始化 常量的值必须能在编译时用于计算.因此,不能用从一个变量中提取的值来初始化常量. 常量总是静态的.但注意,不必(实际上,是不允许)在常量声明中包含修饰符static .
- Sublime Text3下如何快速搭建开发环境
安装好Sublime Text3之后,简单几步就可以搭建一个好用的开发环境. sublime的设置包括自定义设置以及插件系统. 打开菜单Preferences -> Settings,编辑自定义 ...
- node-canvas
1.使用之前需要预先安装 Cairo 本人安装遇到各种各样的坑,可以参考这里来填坑:https://github.com/Automattic/node-canvas/wiki/Installati ...
- 使用Nginx+Lua(OpenResty)开发高性能Web应用
摘自(http://jinnianshilongnian.iteye.com/blog/2280928) 在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡.反向代理.代理缓存.限流等 ...
- Unity3DGUI:人物能量条
- iOS根据网络图片的size大小设置UIImageView的大小
有时候在设置UIImageView的大小时候需要根据UIimage的长宽比来自动设置,不让图片原比例失真. 如果是从本地获取到的图片,[UIImage imageNamed:@"" ...