传送门

# 4.24一个重要的日子.
我人生中第一道7个测试点下载了5个的题目被我发现了,第一次用光下载数据点机会,真心坑点重重.

这题是一道很经典的贪心题目,可能是因为我太蒻了,导致我一直以为最少普及难度.

我用了几乎从未用过的"指针"(加这->  ""  <-个的原因是这个“指针”是模拟指针);

这个题的贪心策略应该都明白:找第一个开始下降的那个数删,如果一直上升删最后一个。原理就不解释了;

这个题每个字符设一个指针,指向他的下一个(不是下一个字符而是下一个非空字符),这样形成了一个伪链表;

不说了,上带注释代码(有一点点瑕疵)

#include<bits/stdc++.h>
using namespace std;
struct po {//结构体(别问我po什么意思)
char sh;//字符(该序号)
int z;//指针(后继)
};
po a[];
int u;//记录字符串长度
int main() {
int s;
while() {
++u;
a[u-].z=u;//初始化后继
a[u].sh = getchar();//读入
if(a[u].sh == '') {//这里也可以不处理
a[u].sh = '!';
} if(a[u].sh == '\n')//换行的时候结束
break;
}
u--;//减去'\n'的长度
scanf("%d",&s);//输入要减去的个数
if(a[].sh ==''&&a[].sh =='!'&&s==){//最后一个数据点我自己本地测过了,但提交就WA
cout<<;//于是就打表了....大家可以屏蔽这几行把下面某几行的注释去掉,本地可以过
return ;
}
int uu=;//记录是否一直上升趋势
for(int i=; i<=s; i++) {//循环s次
for(int j=; j<u;) {//循环u-i个,至于为什这样写留给大家思考
if(a[j].sh > a[a[j].z].sh &&a[j].sh!='-'&&a[a[j].z].sh!='-') {//标记过的不要管,如果某突然个下降了
a[j].sh = '-';//标记
int pp=j-;
while(a[pp].sh == '-')//拆开链表,重新接上
pp--;
a[pp].z = a[j].z ;
uu++;//标记
break;//每次只能去掉一个
}
j = a[j].z ;//找下一个非空字符
}
if(uu==) {//若一直上升,去掉最后一个
a[u].sh = '-';
}
uu=;
// for(int k=1; k<=u; k++) {//如果不理解过程可以"解封"这些然后体会一下
// cout<<k<<"->"<<a[k].z <<" ";
// }
// for(int k=1; k<=u; k++) {
// cout<<a[k].sh ;
// }
// cout<<endl;
}
int oo=;//输出每个非空字符
int uuu=;//去除前导0
for(int i=; i<=u-s; i++) {//循环u-s次
oo = a[oo].z ;//每次找他的后继
if(uuu!=||a[oo].sh !='!'){//之前写过'!'代表0
uuu++;
if(a[oo].sh !='!')
cout<<a[oo].sh ;
else //如果是'!'就输出0
cout<<;
}
}
// if(uuu==0)//如果什么也没输出
// cout<<"0";//补0
return ;
}

最新文章

  1. Kafka入门经典教程
  2. c# 函数练习
  3. HT图形组件设计之道(二)
  4. Postgresql 存储过程调试 1
  5. [geeksforgeeks] Convert a given Binary Tree to Doubly Linked List
  6. SpringMVC01
  7. 工作记录8:iOS 传值问题总结(7种传值完美介绍)
  8. span设置固定宽度
  9. 第二期“晋IT”分享成长沙龙
  10. 第3章Zabbix完整监控
  11. 奇妙的 CSS shapes(CSS图形)
  12. 个人作业2——必应词典APP分析
  13. 201521123121 《JAVA程序设计》第6周学习总结
  14. Jquery Ajax和getJSON获取后台普通Json数据和层级Json数据解析
  15. 【一天一道LeetCode】#8. String to Integer (atoi)
  16. Chrome启动后打开第一个网页很慢的解决方案
  17. python &#39;%r&#39;或者&#39;{!r}&#39;的意思
  18. React脚手架创建一个React应用以及项目目录结构详解
  19. zend framwork项目基本操作
  20. php脚本超时 结束执行代码

热门文章

  1. jstl标签库需要两个包jstl.jar和standard.jar
  2. (二叉树 递归) leetcode94. Binary Tree Inorder Traversal
  3. Linux下配置yum源为阿里云或网易的详解
  4. python全栈开发中级班全程笔记(第二模块)第 二 部分:函数基础(重点)
  5. windows的WSl安装mysql数据库以及操作数据库
  6. 开放源代码的设计层面框架Spring——day04
  7. django --视图装饰器
  8. Centos7.2下部署Java开发环境
  9. idea工具的快捷方式
  10. 【4】学习C++之内存管理