洛咕P1106

//贪心思路:找降序对//其实主要的收获是知道了string的妙用!(呸

#include<bits/stdc++.h>
using namespace std;
const int N = 256;
string ss;
int k;
int main()
{
  cin>>ss>>k;
  int n=ss.length();
  for(int i=0;i<k;i++)
   for(int j=0;j<n;j++){
       if((int)ss[j]>(int)ss[j+1]){    //string真的流弊!原来真的可以直接表示字符串的某一位……emmmm我太菜了
           ss=ss.substr(0, j)+ss.substr(j + 1,n - j);
                 break;
       }
   }
   stringstream tr;
   int b;
   tr<<ss;
   tr>>b;  //最后这一波输入流操作是为了防止删数后首位出现0
   cout<<b;
}

来源:https://www.luogu.org/problem/P1106

原文地址:https://www.cnblogs.com/phemiku/p/11373709.html

时间: 2024-10-16 22:26:05

洛咕P1106的相关文章

洛谷 P1106 删数问题 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:https://www.luogu.org/problem/show?pid=1106 题目描述 键盘输入一个高精度的正整数N,去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N和k,寻找一种方案使得剩下的数字组成的新数最小. 输出应包括所去掉的数字的位置和组成的新的正整数.(N不超过250位) 输入数据均不需判错. 输入输出格式 输入格式: n (高精度的正整数) k (需要删除的数字

洛谷 P1106 删数问题

P1106 删数问题 题目描述 键盘输入一个高精度的正整数N,去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N和k,寻找一种方案使得剩下的数字组成的新数最小. 输出应包括所去掉的数字的位置和组成的新的整数.(N不超过250位) 输入数据均不需判错. 输入输出格式 输入格式: n (高精度的正整数) k (需要删除的数字个数) 输出格式: 最后剩下的最小数. 输入输出样例 输入样例#1: 复制 175438 4 输出样例#1: 复制 13思路:贪心. #includ

洛咕11月月赛部分题解 By cellur925

听说是你谷史上最水月赛?我不听我最菜 T1:终于结束的起点 月天歌名好评 给你一个模数 \(M\),请你求出最小的 \(n > 0\),使得\(fib(n)\) \(mod\) \(m=0\),\(fib(n+1)\) \(mod\) \(m=1\). 数学题,开始还想打表验证下,但是我不会告诉你我打表的时候没有很及时地取膜,然后中间有结果溢出,耽误了很长时间,企图找了很久规律.结果发现暴力就能过.hhh. 这个故事告诉我们要及时取膜! #include<cstdio> #include

洛谷P1106 删数问题

题目描述 键盘输入一个高精度的正整数N,去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N和k,寻找一种方案使得剩下的数字组成的新数最小. 输出应包括所去掉的数字的位置和组成的新的整数.(N不超过250位) 输入数据均不需判错. 输入输出格式 输入格式: n (高精度的正整数) k (需要删除的数字个数) 输出格式: 最后剩下的最小数. 输入输出样例 输入样例#1: 175438 4 输出样例#1: 13分析:贪心思想,我们每次删数肯定是要找前面的大数给删掉,并且这

洛谷——P1106 删数问题

https://www.luogu.org/problem/show?pid=1106 题目描述 键盘输入一个高精度的正整数N,去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N和k,寻找一种方案使得剩下的数字组成的新数最小. 输出应包括所去掉的数字的位置和组成的新的正整数.(N不超过250位) 输入数据均不需判错. 输入输出格式 输入格式: n (高精度的正整数) k (需要删除的数字个数) 输出格式: 最后剩下的最小数. 输入输出样例 输入样例#1: 17543

[题解]洛咕P1629 邮递员送信

链接 一个邮递员要从一号点到每个点再回来,求最短路 题目说一次只能去一个点,这样就简单了,求每个点最短路 怎么求回来的最短路?每个点跑一次dijkstra?这样会T 只要反向建边,再求点1到各点的最短路不就行了吗?(可以画个图手算一遍) 代码: #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #include<queue> using namesp

洛咕P1121环状最大两段子段和

序列dp 题目传送门 我们先不考虑环状,只考虑如何求出最大两段子段和 最大子段和转移方程: f[i]表示以i为结尾的最大子段和    f[i]=max(f[i-1],0)+a[i] ans[i]表示在前i项中的最大子段和    ans[i]=max(f[i],ans[i-1]); 最小子段和同理 想法1:暴力dfs,时间复杂度O(2^n),不T才怪 期望得分:0 想法2:斩环,先求一次最大子段和,将整个子段都置为-inf,再求一遍 hack数据: 6 -3 5 2 1 8 -9 正确:15 错误

LuoguP2115 [USACO14MAR]破坏Sabotage【二分答案】By cellur925

本来是想找一道生成树的题做的...结果被洛咕的标签骗到了这题...结果是二分答案与生成树一点mao关系都没有.... 题目大意:给你一个序列,请你删去某一个$l~r$区间的值($2<=i<=j<=n-1$),使得剩余元素的平均值最小. 开始是想二分序列长度的,后来发现没什么卵用...于是再想一想二分平均值,但是又感觉并没有二分单调性...(其实是满足的,因为我们二分出的最终答案,当比这个答案大的时候,我们一定能满足,小的时候一定不能满足.) 因为二分的复杂度带了一个$log$,所以我们$

归纳(三):分块

何为分块 优雅的暴力 思维难度低下,代码难度低下,非常优秀的一种算法(?). 实现方法主要是块与块之间 \(O(1)*\sqrt{n}\) 查询,边角 \(O(\sqrt{n})\) 暴力查询. 总复杂度 \(O(\sqrt{n})\). 代码实现 首先需要块的大小 \(block\) ,和每个下标归属于哪个块 \(belong[i]\) . 如果需要块内有序,可以使用 \(std::vector\) . 区间修改对于整块使用lazy标记的思想,边边角角还是\(O(\sqrt{n})\)暴力.