明明10e5*10不会超时的, 超了半天, 伤心死了, 优化半天才勉强过了。

Accepted 0 KB 882 ms C++ 4.8.2

代码应该还算好理解吧。

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
const int maxn = 10e5 + 10;
//直接减去应该减去的数量
int n, m;
int num[maxn][10];
int tmp[maxn][10];
char str[maxn];
bool vis[maxn];
char ans[maxn];void ini() {memset(num, 0, sizeof(num));memset(ans, '\0', sizeof(ans));
}int fint_ma(int x) {int t = 9;while(tmp[x][t] == 0&&t>0)t--;return t;
}int main() {while(scanf("%d%d",&n,&m)==2&&(n||m)) {int k = n - m;ini();scanf("%s", str);int len = strlen(str);num[0][str[0]-'0']++;for(int i=1; i<len; ++i) {for(int u=0; u<10; ++u) {num[i][u] = num[i-1][u];}num[i][str[i] - '0']++;}int t = m;int tot = 0;for(int u=0; u<10; ++u) {tmp[m][u] = num[m][u];}int ma = fint_ma(m);for(int i=0; i<n; ++i) {if(ma == str[i]-'0') {ans[tot++] = str[i];t++;if(tot == k)break;for(int u=0; u<10; ++u) {tmp[t][u] = num[t][u] - num[i][u];}ma = fint_ma(t);}}printf("%s\n", ans);}return 0;
}

uva 11491 Erasing and Winning相关推荐

  1. UVA 11491 - Erasing and Winning 贪心水题

    题目链接:UVA 11491 - Erasing and Winning(考虑到UVA的访问不是很方便,这里就放个vjudge的链接吧) 题目 Description Juliano is a fan ...

  2. UVA 11491 Erasing and Winning 奖品的价值 (贪心)

    题意:给你一个n位整数,让你删掉d个数字,剩下的数字要尽量大. 题解:因为最后数字位数是确定的,而且低位数字对答案的贡献是一定不及高位数字的,所以优先选择选最大且最靠左边的数字,但是有一个限制,选完这 ...

  3. UVA - 11491 Erasing and Winning(奖品的价值)(贪心)

    题意:有一个n位整数(不以0开头),要求删除其中的d个数字,使结果尽量大.(1<=d<n<=10^5) 分析: 1.从头扫一遍,如果当前填的数字小于n-d,则将当前数字填上. 2.如 ...

  4. uva 11491——Erasing and Winning

    题意:给定一个n位的整数,要求从中去掉k位,使得剩下的数字最大. 思路:单调队列.在满足删除的数等于k 的前提下求一个不敌减的序列. code: #include <iostream> # ...

  5. UVA - 11491 Erasing and Winning

    // 在满足要求的情况下找已经选出的答案. // #include<iostream> #include<cstdio> #include<string> usin ...

  6. Uva 11491 Erasing and Winning(贪心)

    这道题看了别人的博客才做出来的,思路还是不行. 解题思路:因为要获得最大的数,所以从高位开始枚举,再从这一位向前扫一遍删掉比这一位小的数,当碰到比它大的数时结束.最后扫完一遍后,如果删的数不够m,再从 ...

  7. 11491 - Erasing and Winning(贪心)

    一开始真的没想到这竟然是一道贪心题目.  不过后来仔细想想也就明白了. 我采取的做法是自前向后扫一遍,用一个指针rear动态维护答案数组中的最后一个元素,如果遇到一个比它大的数s[i],那么从它开始将 ...

  8. Erasing and Winning UVA - 11491 解题报告

    题目大意:给你一个N位数字,让你删除其中的D位,使得剩下的数字最大. 思路:这道题是一道贪心题,一开始自己的贪心思想是这样的,使用一个结构体保存原本的位置和数字,读完后排次序消除前D个最小值,再根据结 ...

  9. Erasing and Winning UVA - 11491

    题目传送门 题意:给你n个数字让你从这n个数字当中删除m个,使得最后得到的数字的大小最大. 思路:贪心即可,从前面仅可能选择最大的数字. #include <algorithm> #inc ...

最新文章

  1. linux shell 逻辑判断 [] [[]] -n -z 用法区别
  2. python教程简易版_简洁的十分钟Python入门教程
  3. python模块初始与time、datetime及random
  4. linux开发板显示横向彩虹,给 Linux 终端的输出添加彩虹特效的命令
  5. pytorch的4种边界Padding方法--ZeroPad2d、ConstantPad2d、ReflectionPad2d、ReplicationPad2d
  6. matlab建立的发动机的模型,基于MATLAB∕Simulink的摩托车发动机仿真模型建立.pdf
  7. chain.doFilter(request,response)含义
  8. 20145316《信息安全系统设计基础》期中总结
  9. Oracle回收站使用全攻略
  10. Python 资源索引[绝对适合PYTHON人]
  11. PS套索工具抠图及快捷键
  12. 对象关系Lookup与Master-Detail
  13. 初步支持三维Wavefront object模型
  14. 恭贺新春-杨建荣敬祝
  15. 成为Java GC专家系列(三) ——如何优化Java垃圾回收
  16. 基于大数据的音乐数据中心平台(附:源码 课件 项目部署文档)
  17. renderjs的使用
  18. android系统扫盲教程
  19. 用C语言读取.txt文本,并保存在二维数组中
  20. 自动驾驶中的Scene, Situation和Scenario的定义与补充

热门文章

  1. 一个女生物联人的自学单片机笔记2021.1.21(单片机---单片机的最小系统)
  2. Android系统实现navigationbar订制
  3. form action=form_action.asp method=get
  4. JAVA去除括号及里面的内容
  5. 前三强重磅揭晓!华秋第八届硬创大赛-全国总决赛路演活动成功举办!
  6. 以客户为中心,CRM系统可以给企业带来哪些价值?值得一看
  7. 黑苹果 卡IOConsoleUsers: time(0) 0->0, lin 0, llk 1, IOConsoleUsers: gISOcreenLockState 3, hs 0, bs 0, n
  8. cdn搭建原理_什么叫cdn服务器?怎么部署?
  9. 计算机主机运行轰轰响,电脑一直嗡嗡响怎么回事?电脑嗡嗡响解决方法
  10. lua/require函数