2026.4.2

7-35 6翻了

https://pintia.cn/problem-sets/2037056710707339264/exam/problems/type/7?problemSetProblemId=2037056710849945633

延长字符串,使用s.push_back('s')不容易出错

小秦种树

//相当于上一题,可知要开个数组t[p]代表p这个区间的数字和 。

//同时为了及时得到是否需要对区间进行开根号操作,还要开个数组

//Add,其中add[p]=1代表这个区间不需要再开根号了,add[p]=0代表这个区间需要再开根号了。

//则对于某个区间p,只有当其左右两个子树都不要进行开根号操作时,它

//才具备不需要进行开根号的操作。

// 即add[p]=add[p1]&add[p2];

//对每个区间统计总和(反正要输出的),如果总和<=1,则打上一

//个标记,代表是没必要再开根号了。

#include<bits/stdc++.h>

using namespace std;

#define int long long

signed main()

{

string s,ans;

getline(cin,s);

int cur=0,anscur=-1;

while(cur<s.size())

{

if(s[cur]=='6')

{

// cout<<s[cur]<<" 1"<<endl;

int len=0;

while(s[cur+len]=='6')

{

len++;

}

// cout<<"len "<<len<<endl;

cur+=len;

if(len>3&&len<=9)

{

anscur++;

ans[anscur]='9';

// cout<<"in"<<anscur<<ans[anscur]<<endl;

}

if(len>9)

{

anscur++;

ans[anscur]='2';

anscur++;

ans[anscur]='7';

}

if(len<=3)

{

for(int i=0;i<len;i++)

{

anscur++;

ans[anscur]='6';

}

}

}

else

{

// cout<<s[cur]<<" 2"<<endl;

anscur++;

ans[anscur]=s[cur];

cur++;

}

}

// cout<<"si"<<anscur<<endl;

for(int i=0;i<=anscur;i++)

{

cout<<ans[i];

}

return 0;

}

相关推荐
Zzj_tju2 小时前
Java 从入门到精通(十一):异常处理与自定义异常,程序报错时到底该怎么处理?
java·开发语言
sR916Mecz2 小时前
JavaParser使用指南
开发语言·c#
cpp_25012 小时前
P10376 [GESP202403 六级] 游戏
c++·算法·动态规划·题解·洛谷·gesp六级
智者知已应修善业2 小时前
【51单片机4个IO实现16按键可扩展独立按键64矩阵驱动显示矩阵原值】2023-5-8
c++·经验分享·笔记·算法·51单片机
hui-梦苑2 小时前
[GROMACS]模拟数据分析前轨迹文件生成-轨迹预处理
人工智能·算法·数据分析
蒸汽求职2 小时前
低延迟系统优化:针对金融 IT 与高频交易,如何从 CPU 缓存行(Cache Line)对齐展现硬核工程底蕴?
sql·算法·缓存·面试·职场和发展·金融·架构
海参崴-2 小时前
深入剖析C语言结构体存储规则:内存对齐原理与实战详解
java·c语言·开发语言
南山乐只2 小时前
Java并发工具:synchronized演进,从JDK 1.6 锁升级到 JDK 24 重构
java·开发语言·后端·职场和发展
田梓燊2 小时前
leetcode 239
数据结构·算法·leetcode