【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$个的最大 ...
随机推荐
- C# WinForm 类似QQ靠近屏幕边缘隐藏显示
当窗体离屏幕四周一定距离时,改变窗体位置,引导窗体靠边:靠边后,当鼠标离开窗体时,改变窗体位置,窗体隐藏,凸出一点在屏幕内:隐藏后,当鼠标移到窗体时,窗体显示. using System; using ...
- Chapter 21_5.2 tab扩展
在Lua中,像这样()的空白捕获具有特殊意义.表示捕获它在目标字符串中的位置,返回一个数字: print(string.match("hello","()ll()&quo ...
- ios开发之滑动长图截全屏应用
最近做项目遇到要求截取图片长度超出手机屏幕,即可滑动的长图截屏,这里简单说一下解决思路,下面附带Demo下载地址. ,当我们要截全屏时,将滑动视图的frame以及偏移量记录下来,然后将滑动视图偏移量设 ...
- TCP connect EADDRNOTAVAIL(99)错误原因分析
转自:http://blog.chinaunix.net/uid-20662820-id-3371081.html 关于TCP connect 返回错误99,可以能大家都会遇到,这里就分析一下这个错误 ...
- Beego学习笔记——Logs
日志处理 这是一个用来处理日志的库,它的设计思路来自于database/sql,目前支持的引擎有file.console.net.smtp,可以通过如下方式进行安装: go get github.co ...
- Java学习日志(20170111)
今日新知识点: 1.关键字volatile sychronized是同步锁,这个之前接触过,在类/方法或代码块前加该修饰词,即可实现线程同步: volatile也是一个修饰符,被volatile修饰的 ...
- springmvc基础篇—掌握三种处理器
随着springmvc的广泛使用,关于它的很多实用有效的功能应该更多的被大家所熟知,下面就介绍一下springmvc的三种处理器: 一.BeanName处理器(默认) <?xml version ...
- Unity3D消息:消息传递函数
- HDU 5880 Family View
$AC$自动机. 用$AC$自动机匹配一次,开一个$flag$记录一下以$i$位置为结尾的最长要打$*$多少个字符,然后倒着扫描一次就可以输出了. #pragma comment(linker, &q ...
- iOS中定时器NSTimer的使用/开启与关闭
一.只调用一次计时器方法: //不重复,只调用一次.timer运行一次就会自动停止运行 myTimer = [NSTimer scheduledTimerWithTimeInterval:1.5 ...