传送门

# 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 ;
}

洛谷p1106 删数问题 题解的更多相关文章

  1. 洛谷P1106 删数问题

    题目描述 键盘输入一个高精度的正整数N,去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N和k,寻找一种方案使得剩下的数字组成的新数最小. 输出应包括所去掉的数字的位置和 ...

  2. 洛谷 P1106 删数问题

    一定要认真审题   “去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数”   也就是说 输入:7893400   4     输出:300  (00在原顺序中位于3后边) 输入:789 ...

  3. 洛谷——P1106 删数问题

    https://www.luogu.org/problem/show?pid=1106 题目描述 键盘输入一个高精度的正整数N,去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对 ...

  4. (Java实现) 洛谷 P1106 删数问题

    题目描述 键盘输入一个高精度的正整数NN(不超过250250位) ,去掉其中任意kk个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的NN和kk,寻找一种方案使得剩下的数字组成的新数最小 ...

  5. 洛谷P2426 删数 [2017年4月计划 动态规划12]

    P2426 删数 题目描述 有N个不同的正整数数x1, x2, ... xN 排成一排,我们可以从左边或右边去掉连续的i(1≤i≤n)个数(只能从两边删除数),剩下N-i个数,再把剩下的数按以上操作处 ...

  6. 【题解】洛谷P2426删数

    链接 https://www.luogu.org/problemnew/show/P2426 念念碎 第一次接触到区间DP(瑟瑟发抖) 所以象征性地看了一下题解 这好像是一道比较基础的区间DP吧 但是 ...

  7. 洛谷 P1102 A-B数对 题解

    P1102 A-B 数对 题目描述 出题是一件痛苦的事情! 题目看多了也有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈! 好吧,题目是这样的:给出一串数以及一个数字 ...

  8. 洛谷 P2426 删数

    题目传送门 解题思路: 区间DP,f[i][j]表示区间i~j可获得的最大值,因为本题的所有区间是可以直接一次性把自己全删掉的,所以所有区间初始化为被一次性删除的值,然后枚举断点,跑区间DP. AC代 ...

  9. 洛谷P1012 拼数 【题解】

    **原题链接** 题目描述 设有n个正整数(n ≤ 20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时 ...

随机推荐

  1. sql笔试题

    笔试题1: 1.select * from tablex where name = "张*" order by age  默认升序      select * from table ...

  2. IPv4 forwarding is disabled. Networking will not work_问题解决

    构建Docker镜像时遇见的问题,特做以下记录: 1.编辑 vi /etc/sysctl.conf 2.添加 net.ipv4.ip_forward=1 3.重启network服务 systemctl ...

  3. 关于使用jwt编写接口时候对token判断时候错误的机制处理

    前言:php在使用接口时候很多时候都是需要带token的,如果不对token进行校验那么别人就能够随意编写一个token进入你的接口拿数据,应该怎样处理呢? //生成token public func ...

  4. 统一配置管理 windows linux ide maven gradle docker 【渐进式备份更新~~】

    Tips 系统盘放轻量配置(%HOMEPATH%),仓库盘放大容量文件(自己维护一份 语义化目录结构.txt). Tips               系统盘放 不经常写操作的文件(除轻量配置)    ...

  5. iTOP-iMX6UL开发板【全能版】-动态调频技术简介

    本文档以 iMX6UL 为例,简单介绍 cpufreq 的 5 种模式. 在 imx6ul 的 menuconfig 中,进入 CPU Power Management ---> CPU Fre ...

  6. Python:匿名函数lambda的函数用法和排序用法

    一.介绍: Lambda函数,是一个匿名函数,创建语法: lambda parameters:express parameters:可选,如果提供,通常是逗号分隔的变量表达式形式,即位置参数. exp ...

  7. Could not find a package configuration file provided by "Qt5Widgets"

    解决: sudo apt install qttools5-dev

  8. scrollview 嵌套imageview显示长图

    起初使用代码如下:但是图片显示不全,上半截被截 <ScrollView android:layout_width="match_parent" android:layout_ ...

  9. Vue-计算属性和侦听属性

    复杂逻辑应使用计算属性而不应写在插值表达式{{ }}里 <div id="app"> 原值:{{ msg }} <br> 翻转后的值:{{ reverseM ...

  10. Shiro权限管理

    1.简介 Apache Shiro是Java的一个安全框架,对比Spring Security,没有Spring Security功能强大,但在实际工作时可能并不需要那么复杂,所以使用小而简单的Shi ...