首页 > 其他分享 >Number Reduction

Number Reduction

时间:2023-05-20 14:55:07浏览次数:49  
标签:vector 题意 Number cin Reduction 原本

Number Reduction

题意

删除k位数,让原本的数变得最小(不含前导零)

思路

看官方题解学会的。记录每种数字出现的位置,原本有n位,那结果就有n-k位,一位位枚举,然后尽量放小的数,除了第一位不能放0,其他有0就放0。
为什么vector可以用得这么6啊

代码

void solve() 
{
	string x;
	cin>>x;
	cin>>k;
	//
	n=x.size();
	vector<vector<int>> pos(10);
	for(int i=0;i<n;i++) pos[x[i]-'0'].push_back(i);
	for(int i=0;i<10;i++) 
	{
		reverse(pos[i].begin(),pos[i].end());
	}
	string ans="";
	int last=0,len=n-k;
	for(int i=0;i<len;i++) 
	{
		for(int d=(i==0);d<=9;d++) 
		{
			while(!pos[d].empty()&&pos[d].back()<last) pos[d].pop_back();
			if(!pos[d].empty()&&pos[d].back()-last<=k)
			{
				ans+=d+'0';
				k-=pos[d].back()-last;
				last=pos[d].back()+1;
				break;
			}
		}
	}
	cout<<ans<<endl;
}

标签:vector,题意,Number,cin,Reduction,原本
From: https://www.cnblogs.com/LIang2003/p/17417232.html

相关文章

  • abc269_f Numbered Checker 题解
    NumberedChecker题意有一个\(n\timesm\)的方格矩阵,左上角是\((1,1)\),右下角是\((n,m)\),每个方格中都有一个整数,其中\((x,y)\)中的数字为:如果\(x+y\)是奇数,则\((x,y)\)中的数字为\(0\)。否则,\((x,y)\)中的数字为\((x-1)\timesm+y\)。有\(Q\)组询问,每组......
  • [ABC269F] Numbered Checker
    [ABC269F]NumberedChecker题意有一个\(n\timesm\)的矩阵,有:\(a_{ij}=\begin{cases}(i-1)m+j&i+j\equiv0\pmod{2}\\0&i+j\equiv1\pmod{2}\end{cases}\)给定\(a,b,c,d\)问从\((a,c)\)到\((b,d)\)的数字和是多少。思路数学,我们可以发现,每一行可以表......
  • 【CF446C】DZY Loves Fibonacci Numbers(线段树)
    Description给定一个序列,资瓷区间加上一个斐波那契数列,区间求和。Solution有一个性质:fib[a+b]=fib[a−1]×fib[b]+fib[a]×fib[b+1]fib[a+......
  • Leetcode-Easy 806. Number of Lines To Write String
    题目描述给一个字符串S,从左到右将它们排列行,每行最大长度为100,,同时给定一个数组withds,widths[0]对应着a的宽度,widths[1]对应着b的宽度,...,widths[25]对应着z的宽度。求:至少需要多少行以及最后一行的长度下面是一个实例:Example:Input:widths=[10,10,10,10,10,10,1......
  • 求教一个问题,关于elementplus的el-input-number组件问题
    问题描述:我想让组件默认展示placeholder的值,但是他默认显示的是0,网上搜到的方法都是说将默认值设成undefined,但是我试了并不好用问题代码如下: <el-input-numberv-model="state.form.throwTargetNum"class="range-input":......
  • [LeetCode] 1343. Number of Sub-arrays of Size K and Average Greater than or Equa
    Givenanarrayofintegers arr andtwointegers k and threshold,return *thenumberofsub-arraysofsize k andaveragegreaterthanorequalto *threshold.Example1:Input:arr=[2,2,2,2,5,5,5,8],k=3,threshold=4Output:3Explanation:Sub-a......
  • SQL Server中 函数 ROW_NUMBER()OVER 的使用
    ROW_NUMBER()OVER,它为结果集的分区中的每一行分配一个连续的整数。行号以每个分区中第一行的行号开头。语法实例:SELECTROW_NUMBER()OVER(PARTITIONBYttTJ.ID_TeamsORDERBY(SELECTNULL))ASRowNumFROMscDayRpt_Teams_JobContentttTJ在上面语法中:PAR......
  • 【攻防世界逆向】《re-for-50-plz-50》《srm-50》《Mysterious》《Guess-the-Number》
    题目re-for-50-plz-50解法题目不难,先exeinfo32位elf无壳,但是我在做的时候碰到了一些困难,原本用的是低版本的ida,在f5进行反汇编的时候失败了,然后在吾爱下了一个新版本的ida,就反汇编成功了。以下看起来非常简单明了,关键在于有一个字符串和55进行了异或,点进去看看这样一个,好......
  • getPhysicalNumberOfCells读取excel表格数据,清除空行后代码仍然识别空行,(已解决)
     表格只有几十行数据,但是getPhysicalNumberOfCells读取时还有800多行,原因在于之前把表格数据拓展到了800行,清除数据时,表格的样式为更改,可以尝试使用格式刷复制空行格式刷到错误空行上但是我试了没有用,反而还多了几十行,然后尝试用代码判断空行,只有格式没有数据的空行全部删除,......
  • 设置键盘只能输入数字( phoneNumTextField.keyboardType = UIKeyboardTypeNumberPad;)
    //手机号码textFieldphoneNumTextField=[[UITextFieldalloc]initWithFrame:CGRectMake(0,0,[[UIScreenmainScreen]bounds].size.width,40)];UIView*phoneImage=[[UIViewalloc]initWithFrame:CGRectMake(0,0,40,40)];phoneImage.backgroundColor=[U......