摘要:
感觉挺简单的,Prim和Dijkstra差不多,Kruskal搞个并查集就行了,直接上代码吧,核心思路都是找最小的边. Prim int n,m; int g[N][N]; int u,v; int dis[N]; bool st[N]; int prim(){ me(dis,INF,sizeof( 阅读全文
posted @ 2020-07-24 15:28
_Kolibri
阅读(134)
评论(0)
推荐(0)
摘要:
题意:在二维坐标轴上给你一堆点,在x轴上找一个点,使得该点到其他点的最大距离最小. 题解:随便找几个点画个图,不难发现,答案具有凹凸性,有极小值,所以我们直接三分来找即可. 代码: int n; long double x[N],y[N]; long double check(long double 阅读全文
posted @ 2020-07-24 15:19
_Kolibri
阅读(419)
评论(0)
推荐(0)
摘要:
题意:有两个数组$a$和$b$,每次比较它们最左端的元素,取小的加入新的数组$c$,若$a$或$b$其中一个为空,则将另一个全部加入$c$,现在给你一个长度为$2n$的数组$c$,问是否能有两个长度为$n$的数组$a$和$b$构成. 题解:我们从左向右看$c$,记一个最大值$mx$,观察样例不难发现 阅读全文
posted @ 2020-07-24 15:10
_Kolibri
阅读(164)
评论(0)
推荐(0)
摘要:
题意:给你两个长度为$n$的01串$s$和$t$,可以选择$s$的前几位,取反然后反转,保证$s$总能通过不超过$2n$的操作得到$t$,输出变换总数,和每次变换的位置. 题解:我们现将$s$串全部变成$1$或$0$,确保$s[n]=t[n]$,然后我们倒着遍历$t$,若遇到相邻的两个字符不同,我们 阅读全文
posted @ 2020-07-24 14:43
_Kolibri
阅读(225)
评论(0)
推荐(0)
摘要:
题意:给你两个长度为$n$的01串$s$和$t$,可以选择$s$的前几位,取反然后反转,保证$s$总能通过不超过$3n$的操作得到$t$,输出变换总数,和每次变换的位置. 题解:构造题一定要充分利用题目所给的条件,对于$s$中的某一位i,假如它和$t$中的对应位置不同,我们先对前i个字符取反反转,然 阅读全文
posted @ 2020-07-24 13:04
_Kolibri
阅读(235)
评论(0)
推荐(0)
摘要:
题意:有一个字符串$s$,我们可以选择$s_$,如果$s_{i+k}>s_$,那么就可以交换$s_$和$s_{i+k}$,问最多能够交换多少次. 题解:因为限定了$k$,所以我们交换的位置是固定的,即所有能交换的位置的$i$%$k$都相等,那么对于某个位置$i$,在它之前的$i$%$k$相等的位置的 阅读全文
posted @ 2020-07-24 12:56
_Kolibri
阅读(203)
评论(0)
推荐(0)
摘要:
题意:有$m$个窗口,$n$个人排队,每个人都有各自的办理时间,只有办理完成窗口才能空出来,后面的人开始办理,求有多少人比后面的人开始办理的早但完成的晚. 题解:我们可以用优先队列来模拟办理,用一个数组q来记录办理完成的时间,之后只要求q中逆序对的个数即可,既然求逆序对,那我们肯定用归并排序啦~ 代 阅读全文
posted @ 2020-07-24 12:47
_Kolibri
阅读(158)
评论(0)
推荐(0)
摘要:
题意:有一个数$x$,判断其是否能有某个完全平方数$mod$1000得到. 题解:直接写个for判断一下就好了,因为对1000取模,所以枚举到1000即可. 代码: class Solution { public: /** * * @param x int整型 * @return bool布尔型 * 阅读全文
posted @ 2020-07-24 12:08
_Kolibri
阅读(203)
评论(0)
推荐(0)
摘要:
题意:给你一个加密的字符串,以及偏移量,求对应的明文. 题解:根据样例,不难看出模板串是:$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz$,然后我们去遍历密文的每一位,减去偏移量再取个模就行. 代码: class Sol 阅读全文
posted @ 2020-07-24 12:01
_Kolibri
阅读(149)
评论(0)
推荐(0)

浙公网安备 33010602011771号