[COCI2017-2018#5] Karte

[COCI2017-2018#5] Karte,简短的代码想到了就AC

这道题是SPJ放心搞
但是我的脑子里面的东西,不用我多说,你们就知道是水和面粉和成的

【题目描述】
你有一副共有N张牌的牌,在第i张牌上会有一个数字ai表示在这张牌下面至少一共有ai张牌上的信息是假的。接下来你需要对这副牌进行洗牌,使得这副牌当中,恰好有K张牌的信息是错误的。

【输入输出格式】
第一行输入两个数字N、K(1≤N≤5105,0≤K≤N)。
接下来N行,每行输入一个数字,表示第i张牌上的数字ai(0≤ai≤5
105)

如果不存在恰好K张牌上的信息是错误的情况,则输出-1,否则,将这副牌从上往下输出这N张牌上的所对应的ai。如果有多种答案,输出任意一种。

【样例】
样例输入1
4 2
1
2
2
3
样例输出1
2 3 1 2
样例输入2
5 3
2
1
3
0
3
样例输出2
3 3 0 1 2
样例输入3
6 4
0
2
5
2
0
1
样例输出3
-1

【样例分析】
对于样例2:第5张牌后没有牌,所以他后面是错误的牌的数量应该是0,但他是2,所以这张牌是错误的。第4牌后面有1张牌是错误的(第5张),它上面写的是1,所以是正确的。第3张牌上写的是0,它后面有1张牌是错误的(第5张),所以它是正确的(题目说的是至少有,不是确定有)。第2张牌上面写的是3,但它后面只有一张是错误的(第5张)所以是错误的。第1张牌上写的是3,但它后面只有2张是错误的(第2张和第5张),所以是错误的。即一共有3张是错误的。

【正解】
把a数组进行从小到大sort然后把n-k+1到n的值逆序倒过来存储
再用一个for循环从后往前判断错误信息个数最后按照题意输出就行了
完啦!这道题就可以AC了
但是作为一个有良心的大大!在这里插入图片描述
我必须证明威慑么!!
1)如果错误信息个数<k,因为只有在ai越大而i又越靠前的时候ai才更大几率的错,我们按照最大几率去排序,个数都不够,那么其他方案一样也不够
2)如果错误信息个数>k,就意味着n-k+1到n之间一定所有都是错误的信息,假设在n-k+1到n之间有一个i的信息是正确的,而1到n-k中每一个aj值都小于ai,那么它们的信息也一定是正确的,个数就不可能大于k,故假设不成立。那么如果我们交换i,j是否会减少k呢?过来人告诉不会,k只可能不变或者+1.因为如果我们换了i,j,j本身就是正确的,换过来了有可能也是正确,甚至是错误的导致k+1,而i换过去了前面错误的个数也不会变,就算j导致k+1使得i正确的话,k再-1也是不变,所以不管怎样都不会使得k最少

好了,话不多说,屁不多放,上马
【代码实现】

#include <cstdio>
#include <algorithm>
using namespace std; 
#define MAXN 500005
int n, k;
int a[MAXN], b[MAXN];
int main() {scanf ( "%d %d", &n, &k );for ( int i = 1;i <= n;i ++ )scanf ( "%d", &a[i] );sort ( a + 1, a + n + 1 );int cnt = 0;for ( int i = 1;i <= n - k;i ++ )b[++ cnt] = a[i];for ( int i = n;i >= n - k + 1;i -- )b[++ cnt] = a[i];cnt = 0;for ( int i = n;i >= 1;i -- )if ( b[i] > cnt ) cnt ++;if ( cnt == k )for ( int i = 1;i <= n;i ++ )printf ( "%d\n", b[i] );else printf ( "-1" );return 0;
}

平A小王子,AWM一枪爆掉你的三级头
在这里插入图片描述
不懂的地方,欢迎各位xjj,xgg留言,bye~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/318385.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YBTOJ:红与蓝(博弈论)

文章目录题目描述解析代码题目描述 解析 首先&#xff0c;这道题的情境对二人来说是不对称的&#xff0c;所以不太好使用SG函数来求解 但直观上也好考虑 利用树的递归性质可以求出每个节点的颜色是否确定 并确定根的颜色是否确定 如果确定是红就随便涂 确定是蓝就-1 关键在于不…

NWERC2020J-Joint Excavation【构造,贪心】

正题 题目链接:https://codeforces.com/gym/103049/problem/J 题目大意 nnn个点mmm条边的一张无向图&#xff0c;选出一条路径后去掉路径上的点&#xff0c;然后将剩下的点分成点数相等的两份使得两份之间没有边连接。 1≤n,m≤21051\leq n,m\leq 2\times 10^51≤n,m≤2105 解…

eShopOnContainers 看微服务④:Catalog Service

服务简介Catalog service&#xff08;目录服务&#xff09;维护着所有产品信息&#xff0c;包括库存、价格。所以该微服务的核心业务为&#xff1a;产品信息的维护库存的更新价格的维护架构模式先看代码结构&#xff08;下图&#xff09;。主要依赖&#xff1a;1、HealthCheck …

【CF 1195】Basketball Exercise/Submarine in the Rybinsk Sea (hard edition)/OpenStreetMap+二维单调队列滑动窗口模板

寡人认为C&#xff0c;E都是比较板的题 butD2也太ex了&#xff0c;大大是被那个mod精给弄疯了&#xff0c;我mod了那么多次还是炸了longlong orz 文章目录二维单调队列模板C&#xff1a;Basketball Exercise题目大意题解代码实现D2&#xff1a;Submarine in the Rybinsk Sea (…

Xor Transformation

题目&#xff1a; 给定一个X和Y&#xff0c;对于X每次可以选择一个A&#xff08;0<A<X&#xff09;&#xff0c;使得X X xor A&#xff0c;现在要求在5步内将X变为Y&#xff0c;请输出操作数目&#xff0c;以及每步的A 题解&#xff1a; 我一开始被题目给的样例个迷惑…

【做题记录】DP 杂题

P2577 [ZJOI2004]午餐 $\texttt{solution}$ 想到贪心&#xff1a; 吃饭慢的先打饭节约时间&#xff0c; 所以先将人按吃饭时间从大到小排序。 状态&#xff1a; \(f[i][j]\) 表示前 \(i\) 个人&#xff0c;在 \(1号\) 窗口打饭总时间 \(j\) &#xff0c;最早吃完饭的时间。 我们…

YBTOJ:方程的解(组合数学)(插板法)

文章目录题目描述解析代码题目描述 解析 第一感觉&#xff1a;啥都没感觉出来。。。 直接拿动态规划高精做的 但是只能拿40 重新分析一下这道题&#xff1a; g&#xff08;x&#xff09;首先可以拿快速幂很容易的求出来 问题就转化为了**把g(x)个东西分成k份的方案数 其实答案…

CF39C-Moon Craters【dp】

正题 题目链接:https://www.luogu.com.cn/problem/CF39C 题目大意 坐标轴上有nnn个圆&#xff0c;给出每个圆的位置cic_ici​和半径rir_iri​。 要求选出最多的圆使得他们不相交&#xff0c;求方案。 1≤n≤20001\leq n\leq 20001≤n≤2000 解题思路 转换为选出最多的不交区…

开源库Magicodes.Storage正式发布

说明Magicodes.Storage&#xff0c;是心莱科技团队提供的统一存储库&#xff0c;相关库均使用.NET标准库&#xff08;netstandard2.0&#xff09;编写&#xff0c;支持.NET Framework以及.NET Core。我们希望&#xff0c;使用了Magicodes.Storage之后&#xff0c;开发者可以很快…

P3389 【模板】高斯消元法

P3389 【模板】高斯消元法 题目&#xff1a; 给定一个线性方程组&#xff0c;对其求解 题解&#xff1a; 还没接触高斯消元时以为是什么神仙算法&#xff0c;接触后发现。。。就是把我们手算线性方程组的方法&#xff0c;写成了代码emm。。。 比如&#xff1a; x-2y3z6 4x…

【CF 1188 A1,B,C】Add on a Tree // Count Pairs // Array Beauty

传送门 这些天风也温柔&#xff0c;题也温柔 开车啦&#xff01; 文章目录A1&#xff1a;Add on a Tree题意翻译题解证明代码实现B&#xff1a;Count Pairs题意翻译题解代码实现C&#xff1a;Array Beauty题目描述题解代码实现A1&#xff1a;Add on a Tree 题意翻译 给定一棵…

eShopOnContainers 知多少[5]:EventBus With RabbitMQ

1. 引言事件总线这个概念对你来说可能很陌生&#xff0c;但提到观察者&#xff08;发布-订阅&#xff09;模式&#xff0c;你也许就很熟悉。事件总线是对发布-订阅模式的一种实现。它是一种集中式事件处理机制&#xff0c;允许不同的组件之间进行彼此通信而又不需要相互依赖&am…

USACO Section 4

前言 好久没更新这个系列了&#xff0c;最近闲的无聊写一下。有两题搜索懒得写了。 P2737 [USACO4.1]麦香牛块Beef McNuggets https://www.luogu.com.cn/problem/P2737 解题思路 先只考虑a1a_1a1​&#xff0c;假设我们拼出了www&#xff0c;那么一定能拼出wka1wka_1wka1​…

YBTOJ:数列方案(组合数学)

文章目录题目描述解析代码题目描述 解析 如果它不取等&#xff0c;那就和方程的解这道题一样了&#xff0c;但有了等号就很头疼 如何把等号去掉呢&#xff1f; 定义BiAiiB~i~A~i~iB i A i i那么我们就可以得到&#xff1a;0<B1<B2<...<Bm<mn0<B~1~<B~2~&…

【COCI 2018/2019 Round #2】Kocka

这道题也是一个ex的模拟题 不过他比Zamjena可爱 作为一个帅气的小哥哥&#xff0c;让我们一起&#xff0c; 开启你的模拟ex大门&#xff0c;C从入门到放弃&#xff01; 题目 题目描述 我又来了&#xff01;我又来了&#xff01; 在清晨来到儿童游乐园的时候&#xff0c;出题…

Matrix Equation

题意&#xff1a; 题目给出两个矩阵X,Y,现在有两种操作 Z X Y D X⊙Y 问是否存在一个矩阵C&#xff0c;使得ACB⊙C式子成立&#xff0c;问矩阵C能有多少个 题解&#xff1a; 这个式子在模2意义下的加法就等于异或 也就相当于 那现在有 将BC移到左边 然后将Ci,j的系数进…

eShopOnContainers 知多少[6]:持久化事件日志

1. 引言事件总线解决了微服务间如何基于集成事件进行异步通信的问题。然而只有事件总线正常运行&#xff0c;微服务之间基于事件的通信才得以运转。 而现实情况是&#xff0c;总有这样或那样的问题&#xff0c;导致事件总线不稳定或不可用&#xff0c;比如&#xff1a;网络中断…

单调队列优化DP

全局最优解必然包含局部最优解&#xff0c;因此每次转移只需考虑局部最优解&#xff01;&#xff01;&#xff01; 主要内容 形如这样 的 \(\operatorname{DP}\) 转移方程&#xff1a; \[dp[i]\max_{L_i\le j\le R_i}{\{dp[i]val(i,j)\}} \]满足&#xff1a; \(\{L_i\}\) , \(\…

CF1322B-Present【双指针】

正题 题目链接:https://www.luogu.com.cn/problem/CF1322B 题目大意 给出nnn个数字aia_iai​求 ⨁i1n⨁ji1n(aiaj)\bigoplus _{i1}^n\bigoplus _{ji1}^n(a_ia_j)i1⨁n​ji1⨁n​(ai​aj​) 1≤n≤4105,1≤ai≤1071\leq n\leq 4\times 10^5,1\leq a_i\leq 10^71≤n≤4105,1≤a…

多体问题

代码&#xff1a; function SunEarthMoon % M函数文件load planets; % 将planets.mat中的变量mass、position、velocity加载过来[sun, earth, moon] deal(18, 3, 25); % sun、earth、moon分别是18、3、25行 list [sun, earth, moon]; % 1行3列矩阵 G 6.67e-11; % gr…