题解
文章平均质量分 52
C++题解
Andysun06
这个作者很懒,什么都没留下…
展开
-
【题解】平版
文章来源题目题目描述小明喜欢玩拼板游戏,买了NNN块正方形的拼板,边长分别是A1,A2,...ANA_1,A_2,...A_NA1,A2,...AN。可是在玩拼图游戏的过程中,他发现自己把拼板的尺寸搞错了。所以他需要调换其中的一些,使得调换以后所有拼板总面积正好是MMM。调换拼板是需要成本的,把一块边长是AiA_iAi的拼板替换成一块边长是BiB_iBi的拼板需要的成本是(Ai−Bi)2(A_i-B_i)^2(Ai−Bi)2。特别的,小明只能把之前买的拼板用来做调换。也就是说,他不能用A转载 2021-10-24 06:00:00 · 304 阅读 · 0 评论 -
【YBTOJ】二分例题1——数列分段
题目:题解题意:把一段数列分成 M 段,并且满足各段所有数的和的最大值是所有分段方法中最小的做法:用二分枚举答案,易证:每段和的最大值一定在 l~r 范围内( l 是数组中的最大值,r 是数组里所有数的和)定义一个变量 mid 如果每段和的最大值最小为 mid 看能否分成 M 段,如果可以,在 l~mid 里继续搜索,否则在 mid+1~r 里直到 l==r 就是答案#include<iostream>#include<cstdio>using namespac原创 2021-10-06 15:14:14 · 261 阅读 · 0 评论 -
【YbtOJ】雷达装置
题目#include<bits/stdc++.h>#define reint register int#define ll long longusing namespace std;struct nod{ //存雷达区间 double l,r;}f[1005];int x[1005],y[1005],ans;bool cmp(nod a,nod b){ //按右边缘排序 return a.r<b.r;}int main(){ int n,d; scan原创 2021-08-16 18:02:42 · 190 阅读 · 0 评论 -
【YbtOJ】奶牛晒衣服
题目代码:#include<bits/stdc++.h>#define reint register int#define ll long longusing namespace std;int h; int main(){ int n,a,b,t(0); priority_queue<int> q; //优先队列 scanf("%d%d%d",&n,&a,&b); for(reint i=1;i<=n;++i){ sc原创 2021-08-16 16:11:52 · 185 阅读 · 0 评论 -
题解 CF851A 【Arpa and a research in Mexican wave】
CF851A 题解题目分析:本题题面较为复杂,导致像我这样的初学者有点糊涂。但是,静下心来仔细推一推式子,看看样例解析。很显然,只有三种情况。如果 t≤kt\le kt≤k,就是 ttt 个人站着如果 k≤t≤nk\le t\le nk≤t≤n,就是 kkk 个人站着如果 n≤t≤n+kn\le t\le n+kn≤t≤n+k,就是 n+k−tn+k-tn+k−t 个人站着在了解了这三种情况的时候,就可以写出代码了。题目难度及考点:大致难度在 入门 左右,主要是考思维,代码较为简单。做原创 2021-08-11 17:53:48 · 82 阅读 · 0 评论 -
洛谷 CF63A 题解
CF63A 题解一. 题目分析:首先,看到题目,我们就知道,一共有n个人,有四个等级,分别是:老鼠(rat)妇女(woman)和儿童(child)男人(man)船长(captain)二. 题目难度:个人认为在 普及- 难度左右当船沉时,需要按照这四个等级依次下船,如果等级相同,则按照序号,小的先下船。三. 做法分析:因为每个人的姓名和身份输入时,就是按顺序的,所以我们...原创 2021-08-10 17:56:22 · 299 阅读 · 0 评论 -
洛谷 CF23B 题解
CF23B 题解这题居然还没有 Pascal 题解,那我就来一篇吧!题目思路:有 nnn 个人要去参加聚会,刚开始所有人都在,然后有零个朋友的人会离开,接着是有一个朋友的人会离开,以此类推直到有 n−1n-1n−1 个朋友的人离开 问你最佳情况下最后会剩余多少人?这个题目描述看起来似乎有点复杂,但是当我们开始尝试推式子是,立马就可以发现只要输出 t−1t-1t−1 就可以了。但有一种特殊...原创 2021-08-10 17:55:13 · 137 阅读 · 0 评论 -
最小生成树Kruskal算法详解
Kruskal算法简介:Kruskal 算法是一种用来求最小生成树的算法,在稀疏图中比 Prim 有更高的效率,且方便实现,所以本文重点讲解 Kruskal 算法的用途和使用方法Kruskal算法原理:Kruskal 算法主要利用贪心的思想使得边权和最小Kruskal 算法步骤:把 mmm 条边按边权从小到大排序把图中的 nnn 个顶点看成独立的 nnn 棵树组成的森林;先从边权小的边开始循环,通过并查集判断添加这条边后是否会形成环(也就是能否连接两个不同祖先的点),如果可以,则添加这条边。原创 2021-08-10 17:41:26 · 1054 阅读 · 0 评论 -
【YbtOJ高效进阶2021】【广搜BFS教程】【例题1】走迷宫图——超详细题解
题目:题目大意:题目让我们求两点间的最短路径长度,显然是需要广搜,因为广搜先搜到一定就是最短路,深搜可以搜索路径,但搜到的不一定最短,往往都需要多次回溯和判断,耗时太长,只能过1个点。做题思路:刚开始做这题时,我毫不犹豫的打完了深搜的代码(虽然我知道是广搜),然后一直TLE,我还全然没发现自己写错了算法,我的深搜错误代码:#pragma GCC optimize("Ofast","inline","-ffast-math")#pragma GCC target("abm,avx,mmx,pop原创 2021-08-10 11:33:40 · 332 阅读 · 0 评论 -
【一本通高效进阶】E.1.划分数列详细题解
题面:题目描述给定一个长度为 n 的数列 ,要求划分最少的段数,使得每一段要么单调不降,要么单调不升。输入格式第一行一个整数 n 。接下来 n 个数表示数列 。输出格式输出最少的划分数。样例样例输入 161 2 3 2 2 1样例输出 12样例输入 291 2 1 2 1 2 1 2 1 样例输出 25样例输入 371 2 3 2 1 999999999 1000000000样例输出 33题解博主使用的是最好理解的模拟做法思路:用一次循原创 2021-08-08 18:27:02 · 420 阅读 · 0 评论