【题外话】这道题纯粹考验耐心,某些经常调程序调到摔键盘的人可以尝试

【题外话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提高组】字符串展开的更多相关文章

  1. 洛谷P1098 [NOIP2007 提高组] 字符串的展开

    题目链接:https://www.luogu.com.cn/problem/P1098 这个题出的真的很有质量,这个是我见过算是复杂的模拟题了,对付这种题,一丝都不能马虎,要想实现快捷而又简便的代码设 ...

  2. [NOIP2007] 提高组 洛谷P1098 字符串的展开

    题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母获数 ...

  3. Vigenère密码 2012年NOIP全国联赛提高组(字符串模拟)

    P1079 Vigenère 密码 题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简 ...

  4. noip2007提高组题解

    题外话:这一年的noip应该是最受大众关心的,以至于在百度上输入noip第三个关键字就是noip2007.主要是由于这篇文章:http://www.zhihu.com/question/2110727 ...

  5. Noip2007提高组总结

    两道基础题,后两题比较麻烦,算法想出来后,还是一些细枝末节的问题,需要特别注意,感觉Noip的题目质量还是挺高的,每做一套,都感觉会有大大小小不同的收获,就要月考了,最后把07年的题目总结一下,算是这 ...

  6. luogu1097统计数字[noip2007提高组Day1T1]

    题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出 ...

  7. 洛谷-统计数字-NOIP2007提高组复赛

    题目描述 Description 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照 ...

  8. [NOIP2007] 提高组 洛谷P1097 统计数字

    题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出 ...

  9. [NOIp2007提高组]矩阵取数游戏

    OJ题号:洛谷1005 思路: 动态规划. 不难发现每行能够取得的最大值仅与当前行的数据有关,因此本题可以对每行的数据分别DP,最后求和. 设$f_{i,j}$表示左边取$i$个.右边取$j$个的最大 ...

随机推荐

  1. 详解一下网络广告cpc、cpm、cpl、cpa、cps、cpr的计费方法是什么

    CPC(Cost per click)按照 广告 点击数 计费 ,限定一个IP在24小时内只能点击一次.CPM(Cost per mille)按照广告显示次数来计算广告费,可在短时间内为 网站 带来巨 ...

  2. 【.NET】电话号码打星号(隐藏部分)

    描述:支持多个电话: //隐藏部分内容,支持一个值有多个联系方式,用逗号隔开.//参数:value - 值,subIndex - 从第几位开始,subQty - 隐藏几位数 protected str ...

  3. 下载一个应用程序,华硕手机秒变3D扫描仪

    近日,新奥尔良的3D开发先锋Scandy对外发布消息称,其取得了一个重大的突破.这次使用的是硬件巨头华硕的智能手机.该公司新的Android设备(华硕ZenFone AR)被Scandy变成一个借助开 ...

  4. 命令行启动Hololens Emulator,可解决内存不足的问题

    有时候在虚拟机测试时常会出现 内存不足 的情况,导致应用卡顿,调整 /memsize 参数大小: start "HoloLens" "C:\Program Files ( ...

  5. redis单主机多实例

    假设我们服务器上面已经安装好了redis: 可参看:http://zlyang.blog.51cto.com/1196234/1834700 下面我们来配置redis单主机多实例: 我们首先拷贝两份文 ...

  6. ubuntu_虚拟机和SD卡链接失败,可能的原因

    这个问题很简单吧,但是自己解决却用了很长时间,说一下方法吧! 1.有的虚拟机不兼容USB3.0的接口,所以在接SD卡(读卡器)时,请将读卡器拔出,插入笔记本USB2.0的接口上(当时自己没注意到这点, ...

  7. mac下 redis安装使用

    安装redis:brew install redis 开启redis服务:redis-server /usr/local/etc/redis.conf 重新打开一个命令窗口:redis-cli ,进入 ...

  8. Chapter 2 Open Book——34

    His gaze became appraising. "You put on a good show," he said slowly. 他的凝视变成了评价.“你上演了一场好戏” ...

  9. Mysql的转义字符

    Mysql的转义字符是"\",即反斜杠,在INSERT语句中,如果被插入的文本中包含反斜杠,那么反斜杠会被吃掉.例如: INSERT INTO tb (id,json) VALUE ...

  10. Unity2D开发小细节

    当某个触碰物体挂在父组件时,如果当前子组件不加rigidbody,会默认使用父组件的rigidbody