摘要: 前置知识 最短路。 思路 这就是一道很简单的最短路板子,太良心了,用堆优化的 Dijkstra 就能过。相信大家都会这个,我就不介绍了。 AC CODE #include<bits/stdc++.h> using namespace std; int dis[100005],n,m,s,t,vis[ 阅读全文
posted @ 2023-11-19 09:58 Xu_dh 阅读(22) 评论(0) 推荐(0)
摘要: 本题考查基本语法。 思路 用 while 来枚举每一组数据,用 if 判断是否合法。 在判断时需要使用逻辑运算符 &&,它的意思是左右两个要求如果同时成立,则会返回 true,否则返回 false。 \(a \ge x\),\(b \ge y\),\(a + b \ge z\)。 这三个条件都要同时 阅读全文
posted @ 2023-11-19 09:58 Xu_dh 阅读(13) 评论(0) 推荐(0)
摘要: 题意简述 有两个 \(n\) 位十进制数 \(a\),\(b\)。要将数字 \(b\) 的每一位重新排列后,使得得到的数字一个在大于等于 \(a\) 的情况下更接近 \(a\),另一个在小于 \(a\) 的情况下更接近 \(a\)。 求这两个数,如果找不到就输出 0。 思路 以大于等于 \(a\) 阅读全文
posted @ 2023-11-19 09:57 Xu_dh 阅读(11) 评论(0) 推荐(0)
摘要: 思路 因为不一定是只有一个答案,也就是多选题。所以就转化成了在 \(n\) 个里面选若干个。 而每种个数必须都试一次。所以答案为: \[\sum_{i=1}^{i \le n} C_n^i \]\(C_n^m\) 表示在 \(n\) 个里面选 \(m\) 个方案数,即组合问题。 众所周知, \[2^ 阅读全文
posted @ 2023-11-19 09:56 Xu_dh 阅读(20) 评论(0) 推荐(0)
摘要: 题意 给定两个字符,分别是两个 \(26\) 进制数,\(A\) 到 \(Z\) 分别表示 \(0\) 到 \(25\)。求这两个字符的和。答案同样用这种 \(26\) 进制表示。不包含前导 \(0\)。 思路 先转化成 \(10\) 进制,再转化成 \(26\) 进制即可。 而因为只有一位所以就不 阅读全文
posted @ 2023-11-19 09:55 Xu_dh 阅读(14) 评论(0) 推荐(0)
摘要: 题意 给定一个序列,里面的值只有可能是 \(a\) 或 \(b\)(\(a < b\))。有 \(m\) 个区间,这里面的值必须是 \(a\),求如何是序列总和最大。 思路 因为 \(n\) 和 \(m\) 都只有 100,所以可以先暴力将所有值设为 \(b\),再将区间里的值暴力修改为 \(a\) 阅读全文
posted @ 2023-11-19 09:53 Xu_dh 阅读(11) 评论(0) 推荐(0)
摘要: 考虑使用贪心。 对每个人按 \(m\) 从大到小排序,这样可以使后面跟风的人跟多,需要花费金币越少。 维护一个小根堆,从后往前枚举,每次将人的贿赂值入小根堆。 如果当前人民的跟风值大于在小根堆里的人数,就将答案加上堆顶元素,并将堆顶元素出堆。 最后输出答案。 注意易错点,每次要将堆清空。不会只有我才 阅读全文
posted @ 2023-11-19 09:52 Xu_dh 阅读(21) 评论(0) 推荐(0)