首页 > 其他分享 >NOIP 字串变换

NOIP 字串变换

时间:2022-11-06 11:45:42浏览次数:50  
标签:NOIP 变换 len else LOP 字串 && define out

思路

因为有很多的相似部分不妨用define定义一下, 会很好.

Code

#include <bits/stdc++.h>
using namespace std; 
#define MAXN 32005
#define F(i, a, b) for(int i=a; i<=b;i++)
#define Fd(i, a, b) for(int i=a;i>=b;i--)

#define out(x) buf[cnt++] = (x)

#define LOP F(k, 1, p2){\
				if(p1 == 1){\
					if(j>='A' && j<='Z'){\
						cout<<tolower((char)j);\
					}else{\
						out(char(j));\
					}\
				}else if(p1 == 2){\
					if(j>='a' && j<='z'){\
						out(toupper((char)j));\
					}else{\
						out(char(j));\
					}\
				}else if(p1 == 3){\
					out('*');\
				}\
			}
char buf[MAXN] = {};
int cnt= 0;
int main(){
	int p1, p2, p3; cin>>p1>>p2>>p3;
	string s; cin>>s;
	
	s = "$"+s;
	
	int len = s.length();
	F(i, 1, len){
		if(s[i] == '-'){
			if(i != len){
				if(s[i-1] < s[i+1] 
				&&
				(
				 (isdigit(s[i-1]) && isdigit(s[i+1]))|| 
				 (isalpha(s[i-1]) && isalpha(s[i+1]))
				)
				){
					
					if(p3 == 2){
						Fd(j, s[i+1]-1, s[i-1]+1){
							LOP
						}
					}else if(p3 == 1){
						F(j, s[i-1]+1, s[i+1]-1){
							LOP
						}
					}
				}else{
					out(s[i]);
				}
			}else{
				out(s[i]);
			}
		}else{
			out(s[i]);
		}
	}
	cout<<buf<<endl;
}

标签:NOIP,变换,len,else,LOP,字串,&&,define,out
From: https://www.cnblogs.com/augpath/p/16862270.html

相关文章

  • NOIP 时间复杂度
    思路写出如下的伪代码:然后实现出来就是这样:#include<bits/stdc++.h>usingnamespacestd;#defineMAXN32005#defineF(i,a,b)for(inti=a;i<=b;i++)#defi......
  • NOIP2017 逛公园 记忆化搜索|dp(已过hack数据)
    30pts可以发现,\(k=0\)的情况下,问题转化为最短路计数,即从起点\(s\)到每个点有多少最短路。跑最短路的时候顺便维护\(ans[u]\),表示从\(s\)到\(u\)的最短路方案,讨论如下:①......
  • 2022NOIPA层联测21
    B.学数学打表只发现了连续的$(2,8)(8,30)(30,112)$似乎比较有规律的样子,通过他们算出来的$a=xy+1,b=x^2+y^2$恰好是$2^2$倍数,如果是“以3为起点的链表”就是$3^2$.但......
  • [Public NOIP Round #3]图同构
    点权和颜色的操作不对称,尝试转化为同类操作。对于颜色的操作可以看作:交换两点颜色,然后反色那么可以将颜色和点权绑在一起交换,最终颜色是否反色取决于路径长度的奇偶性。......
  • 「题集」Public NOIP Round #2 提高
    简单写一写题解,T3和T4还是值得一记的。恰钱注意到,\(10^9\)范围内的好数明显数量不多。我们甚至可以直接算出来:\[\sum_{k=1}^{14}\binom{30-(k+1)}{k-1}\]结合这个......
  • 【杂题汇总】NOIP 2022 杂题目录
    这里单纯的是一些题目,看到有意思的题会在这里记下来,也可以当做Todolist啦解析的话在这里[ARC147E]Examination[CF573E]BearandBowling[CF498D]TrafficJamsi......
  • 观察变换的理解与存在价值
    假设我们已经用世界坐标系变换把模型放在了场景的某处(x,y,z):  然后我们要在camera(x,y,z)这个点去看这个物体,并且设置好相机的朝向(Dir,Up,Right)、那么以相机为原点也会......
  • 2022NOIP A层联测20
    [优化排序?]T2:给出二分图,左部任意节点和右部任意节点有边连接,边有边权,求最少边权使得所有节点联通。(n<=5000)正解kruscal跑最小生成树,发现\(n^2logn\)的sort会T,然后因为......
  • P1083 [NOIP2012 提高组] 借教室
    #include<iostream>usingnamespacestd;constintN=1e6+1;intn,m;inta[N];structnode{inttag,sum;node(){tag=sum=0;}v......
  • LG2258 [NOIP2014 普及组] 子矩阵
    LG2258[NOIP2014普及组]子矩阵给出一个矩阵,求出一个子矩阵(对应在数列上的定义为子序列,从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵保持行与列的相对顺序......