CF1492B Card Deck 题解
Content
有 \(n\) 张纸牌组成的一个牌堆,每张纸牌都有一个价值 \(p_1,p_2,\dots,p_n\)。每次选出最顶上的几个牌放到另外一个一开始为空的牌堆里面。定义一个牌堆的总值为 \(\sum\limits_{i=1}^nn^{n-i} \cdot p_i\)。请构造出一个可能的最终的牌堆,使得这个牌堆的总值最大。
数据范围:\(t\) 组数据,\(t\in[1,10^3]\),\(1\leqslant p_i\leqslant n\leqslant 10^5\)。
Solution
我们不难想到,需要尽可能将 \(p_i\) 大的牌放到前面去,因此我们想到这样一个贪心算法:将前 \(1\sim n\) 个数的最大值所在位置记为 \(maxi_i\)(\(maxi_i\) 可以通过边读入边记录,详见代码),然后从牌顶开始,每次将 \(maxi_i\) 相等的牌按照原来的顺序放入新的牌堆,这样可以保证将 \(p_i\) 大的牌放在前面而又符合要求。
Code
int n, p[100007], maxi[100007], ans[100007], cnt;
int main() {
MT {
memset(ans, 0, sizeof(ans));
memset(maxi, 0, sizeof(maxi));
n = Rint, cnt = 0;
F(i, 1, n) {
p[i] = Rint;
if(p[i] > p[maxi[i - 1]]) maxi[i] = i, ans[++cnt] = i;
else maxi[i] = maxi[i - 1];
}
ans[++cnt] = n + 1;
R(i, cnt, 1) F(j, ans[i], ans[i + 1] - 1) printf("%d ", p[j]);
puts("");
}
return 0;
}
CF1492B Card Deck 题解的更多相关文章
- A Pythonic Card Deck: __len__ & __getitem__ & for 循环的嵌套
1. 列表生成式的嵌套 for 循环: 示例如下: li1 = range(1,6) li2 = list("ABC") # list("ABC") 的结果为 ...
- Clash Credenz 2014 Wild Card Round题解
A题 简单模拟. /************************************************************************* > File Name: ...
- CF106A Card Game 题解
Content 一种纸牌游戏有许多张卡牌,每张卡牌有一个套装(S,H,D和 C)和一个等级(按升序排列6,7,8,9,T, J,Q,K,A). 规定以下情况卡牌 A 才能赢卡牌 B: A 有王牌套装, ...
- 浙大pat1042题解
1042. Shuffling Machine (20) 时间限制 400 ms 内存限制 32000 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Shu ...
- [LeetCode] 914. X of a Kind in a Deck of Cards 一副牌中的X
In a deck of cards, each card has an integer written on it. Return true if and only if you can choos ...
- Card Stacking 队列模拟
题目链接:https://ac.nowcoder.com/acm/contest/993/ABessie is playing a card game with her N-1 (2 <= N ...
- Codeforces Round#704 Div2 题解(A,B,C,D,E)
FST ROUND !!1 A Three swimmers: 直接整除一下向上取整就好了: #include <bits/stdc++.h> using namespace std; t ...
- HDU 5816 Hearthstone (状压DP)
Hearthstone 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5816 Description Hearthstone is an onlin ...
- CodeForces 546C(队列)
CodeForces 546C Soldier and Cards Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I ...
随机推荐
- springboot增加多端口管理
目标是这样的: 方法 方法还是比较简单的1.点击菜单栏:Views -> Tool Windows -> Services:中文对应:视图 -> 工具窗口 -> 服务:快捷键是 ...
- 单&双&单|双||的区别
System.out.println(true|true);//true System.out.println(true|false);//true System.out.println(false| ...
- python网络自动化运维之环境搭建(EVE-NG+pycharm)
参考了很多资料,发现现在很多环境用的都是GNS3加linux下的python,几乎没有是用EVE-NG加上pycharm的教程,EVE的功能如此强大,存在的教程却较少,这里我出一篇教程供使用EVE作为 ...
- 【虚树学习笔记([SDOI2011]消耗战)】
题意 [SDOI2011]消耗战 想法 首先我们可以很自然的想到怎么在整棵树上进行求解\(DP\) 很简单 每个点有两个选择 要么对其子树的关键点递归求解 要么自己断开 当然断开的\(cost\)为其 ...
- LOJ #2185 / 洛谷 P3329 - [SDOI2015]约数个数和(莫比乌斯函数)
LOJ 题面传送门 / 洛谷题面传送门 题意: 求 \(\sum\limits_{i=1}^n\sum\limits_{j=1}^md(ij)\),\(d(x)\) 为 \(x\) 的约数个数. \( ...
- char *p、char p[]、字符串的几个题目
总结一下遇到的关于char *p.char p[]和字符串的题目: 例一:(指针的指针) 1 void getmemory(char **p) 2 { 3 p = (char *)malloc(100 ...
- 3个CSS动画库,比Animated还好用,让你的网站酷炫起来
本文首发于https://www.1024nav.com/tools/css-animation-library 转载请注明出处 整理了日常前端开发中常用的css动画库,让你的网页动起来,可以在生成中 ...
- 如何根据fasta快速统计基因组大小及其各染色体长度?
基因组长度 利用seqkit统计长度 seqkit stat test.fa 结果如下: file format type num_seqs sum_len min_len avg_len max_l ...
- mysql—mysql错误Every derived table must have its own alias解决
Every derived table must have its own alias 这句话的意思是说每个派生出来的表都必须有一个自己的别名. 一般在多表查询时,会出现此错误. 因为,进行嵌套查询的 ...
- rabbit mq的php使用 amqp 的支持
rabbit mq的php使用 php想要操作rabbit 需要扩展amqp 1,先查看自己的php版本 phpinfo() 接下来下载dll文件 地址http://pecl.php.net/pack ...