LG2945 【[USACO09MAR]沙堡Sand Castle】】的更多相关文章

经典的贪心模型,常规思路:将M和B排序即可 看到没有人用优先队列,于是我的showtime到了 说下思路: 读入时将数加入啊a,b堆中,不用处理(二叉堆本来就有有序的性质) 读完后逐个判断,照题目模拟即可 总时间复杂度:O(nlogn) 其实就是堆排序的时间复杂度 楼下的那位用了sort还说是O(2n)的,大家不要犯这种低级错误 贴代码: #include<cstdlib> #include<cstdio> #include<cmath> #include<cst…
题目传送门 大概思路就是把这两个数组排序.在扫描一次,判断大小,累加ans. #include<bits/stdc++.h> using namespace std; int x,y,z; ],m[]; long long s; int main(){ cin>>z>>x>>y; ;i<=z;i++) cin>>n[i]>>m[i]; sort(n+,n++z); sort(m+,m++z); ;i<=z;i++){ if…
传送门 题目大意: ai,ai+1,ai+2... 变成 bi,bi+1,bi+2.. 不计顺序,增加和减少a数组均有代价. 题解:贪心+排序 小的对应小的 代码: #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define N 25009 #define LL long long using namespace std; int n,x,y; LL an…
https://www.luogu.org/problemnew/show/P2945 好像猜一猜就觉得排序之后是最优的,懒得证明了.每个城墙向他最接近的城墙靠近,绝对是最优的.…
3399: [Usaco2009 Mar]Sand Castle城堡 Time Limit: 3 Sec  Memory Limit: 128 MB Description 约翰用沙子建了一座城堡.正如所有城堡的城墙,这城墙也有许多枪眼,两个相邻枪眼中间那部分叫作"城齿".    城墙上一共有N(1≤N≤25000)个城齿,每一个都有一个高度Mi.(1≤尬≤100000).现在约翰想把城齿的高度调成某种顺序下的Bi,B2,-,BN(I≤Bi≤100000). -个城齿每提高一个单位的高…
3399: [Usaco2009 Mar]Sand Castle城堡 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 22  Solved: 17[Submit][Status] Description 约翰用沙子建了一座城堡.正如所有城堡的城墙,这城墙也有许多枪眼,两个相邻枪眼中间那部分叫作“城齿”.    城墙上一共有N(1≤N≤25000)个城齿,每一个都有一个高度Mi.(1≤尬≤100000).现在约翰想把城齿的高度调成某种顺序下的Bi,B2…
3399: [Usaco2009 Mar]Sand Castle城堡 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 37  Solved: 32[Submit][Status][Discuss] Description 约翰用沙子建了一座城堡.正如所有城堡的城墙,这城墙也有许多枪眼,两个相邻枪眼中间那部分叫作“城齿”.    城墙上一共有N(1≤N≤25000)个城齿,每一个都有一个高度Mi.(1≤尬≤100000).现在约翰想把城齿的高度调成某种…
嘟嘟嘟 太水了,大佬们就绕道吧…… 就是m, b数组分别排个序,然后更改对应位置的m[i]和b[i],就行了. 因为如果m[i]不改为b[i]而是b[i + 1]的话,那么必定要将m[j] (j > i)改为b[i],而这一定比m[i]改为b[i]更劣. #include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #inc…
题目链接:https://www.luogu.org/problemnew/show/P2945 (原题 USACO) 要求钱最少,就是试着让M和B的离散程度最小(我自己脑补的,就是总体更接近,我不知道数学上这样该不该叫离散程度),那显而易见就是升序. 一开始想着可能有这种情况,有高度相同,但是对不上的,其实是没有差别的. 原高度:2 2 3 4 5 改高度:2 3 4 5 6 证明看这个:https://www.cnblogs.com/Leohh/p/7648607.html #include…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3399 题意: 给你一个数列a,和一个可变换顺序的序列b(数列长度≤25000). a增加一个单位代价为x,降低一个单位代价为y. 求a变为b的最小代价. 题解: 贪心. 将a,b分别从小到大排序,然后统计答案. 证明: 因为a,b均为升序,所以对于交换a[i]和a[j],有四种情况: 红色为a的走势,蓝色为b,绿色为花费.实线为交换之前,虚线为交换之后. (1)a,b不相交.交换前和交换…