- 博客(54)
- 收藏
- 关注
原创 洛谷P2498 [SDOI2012] 拯救小云公主 (二分)
很简单,只需判定两点的距离和判断的最近距离是否合法即可,如果不合法就入队,相当于一开始的左上两点,把最后的希望交给右下两点,至此就结束了。假设boss的坐标是 (x, y) ,那么最短的距离是和点(1, y), (x, 1), (row, y), (x, line),此时的距离分别为x - 1, y - 1, row - x, line - y,此时到了关键点,是否只有四者有两个点符合情况即可?第一行,输入三个整数,n表示boss的数目,row,line表示矩形的大小;100%数据,n<=3000;
2023-07-17 11:11:00 361
原创 洛谷01背包变形(P1858多人背包)
学过背包的同学都知道01背包的状态f[i][j]表示前i个物品体积不超过j的最大价值,状态转移方程:f[i][j] = max(f[i - 1][j], f[i - 1][j - v] + w)。我们可以通过01背包求解出第k优解,即设状态为f[i][k]表示体积为i第k个包中的最大价值,易得f[i][1], f[i][2], …④ 按第②步分析得,每个包的价值是单调递减的,需要开一个数组来存取中间的包数所代表的值,所以我们可以在枚举物品枚举体积后加多一个循环,以背包的数量为条件来枚举,通过。
2023-05-27 23:09:53 1078
原创 每日一题——最小生成树(哭死)
这道题考察最小生成树和贪心。万物皆用kruscal(滑稽)最小生成树的板子:void kruscal() { for(int i=1; i<=n; i++) f[i]=i; sort(Edge+1,Edge+1+m,cmp); for(int i=1; i<=m; i++) { int u=Edge[i].u,v=Edge[i].v; int k=find(u),l=find(v); if(k!=l) { f[k]=l; sum+=w; cnt++;
2022-05-04 19:50:18 456
原创 社区五一活动
目录开心的金明榨取kkksc03合唱队形导弹拦截纪念品分组开心的金明解析:这道题给出n(总钱数)和m(物品个数),每个物品给出价钱和重要程度,求不超过总钱数的物品价格与重要度乘积的总和,即v1*p1+v2*p2+……。这乍一看是不是很像01背包问题。01背包问题问的是给出一个背包的物品个数和总体积,每个物品给出所占体积及价值,求在不超过背包总体积的价值之和。 设f[i][j]表示选前i个物品花费j个金币的值。分析一...
2022-05-03 21:09:34 598
原创 每日一练——最长路(图论)
P1807 最长路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)这道题可以用迪杰斯特拉、bellford、floyd、toposort、bfs(后两个本质上是一样的)。下面我将给出后三者的代码。//floyd(392ms)做了许多无用功#include <bits/stdc++.h>#define MOD 1000000007#define INF 0x3f3f3f3fusing namespace std;typedef long lon
2022-04-17 12:35:00 589 1
原创 每日一题——喂牛的麻烦事
P1113 杂务 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)这个题的背景没有用,所以就没截图了。其实一开始我硬是没看懂,我还以为说全部工作时间加起来,可是全加是29,比23大,显然不对。所以就没忍住看题解,没看懂,后来回来认真看了一下题,原来有些工作是可以同时进行的,比如做2 3时也在做4。解读题意:这个题的大概意思就是先给出工作数目,然后给出序数和完成该工作的时间以及做该工作前需要做的准备工作的序号,以0结尾,什么意思呢?比如我要做2号工作,那么我需要先完成1号,也.
2022-04-17 05:00:00 593
原创 Secret Cow Code S(思维或字符串)
P3612 [USACO17JAN]Secret Cow Code S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)题目大意:给定一个字符串和数字,数字代表位置,字符串可以无限增长,增长的原理:当前字符串的最后一个字母放到最前面然后接到后面,要求输出给定的位置的字母。解析:怎么做呢?我们可以试试大模拟,就是将整个字符串接出来,然后直接输出给定的位置。下面的做法只能拿40分,因为数据高达10^18,肯定会超时,而且字符串存不了这么长的串#include <bit..
2022-04-16 18:58:16 717
原创 每日一题——递归之0、2杂交
P1010 [NOIP1998 普及组] 幂次方 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)这道题不难,只是普及-难度,可是它的输出好恶心,好繁琐,假如它问我任意一个数能拆成n个2次幂相加,输出这个等式,那就非常简单了。不过这道题就是在这基础上继续递归,使其输出0、2。我们先看看输出等式的代码,然后在其基础如何进行修改。//1315=1024+256+32+2+1#include <bits/stdc++.h>#define MOD 100000000
2022-04-15 23:12:23 368
原创 洛谷每日三题——贪心
贪心算法,你人够贪就会做。贪心就是通过部分最优解来推出全局最优解,可以理解为在每个子阶段都取当前最优解,到最后合并的时候的解是全局最优解。【深基12.例1】部分背包问题解析:题目给出体积和价值,需要求背包最大容积下的最大价值,物品可拆分,显然是贪心算法。那么如何做到局部最优解?很简单,当然是每次都取最大价值的放进去背包,大错特错!正解应该是每次都取最大的性价比(性价比=价值/体积),如果小于背包当前所剩容积就整个放进去,否则拿部分放进背包。#...
2022-04-11 23:05:14 630 3
原创 蓝桥杯31天冲刺打卡(day31)
Hello,大家好!不知不觉就已经到第31天了(昨天比较忙所以没更题解),还剩1天就要开始蓝桥杯的比赛,有些小伙伴可能会像博主这样有考前焦虑症,这很正常,不过要懂得放松和调整状态,要相信:我们都坚持练了31天的题了,啥题没见过?相信自己该会的都已经会了。在此祝愿大家考到自己理想的成绩,全体省一冲刺国赛! 今日份题解已到达,请小伙伴们接收。
2022-04-08 12:27:21 609 4
原创 蓝桥杯7天复习(day6)
1、平面切分(20年省赛——3月29日)2、平方序列(19年国赛——3月12日)暴力 。答案:7020#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define MOD 1000000009using namespace std;typedef long long LL;int main() { for(int i=2020; ; i++) for(int j=i+1; j<5000 ; j++) {..
2022-04-07 12:11:15 523
原创 蓝桥杯31天冲刺打卡(day30)
目录1、打印大X(15年省赛)2、分巧克力(17年省赛)1、打印大X(15年省赛)解析:一道模拟题,我们发现它的宽度是m+n-1,所以我们用两重循环就能打印了。 整个X都是轴对称的,也就是左右的符号是一样,所以我们需要两个指针标记*的起点(中线左右的点数是一样多的,用两个指针标记起点(左边的起点在最左边,右边的在最右边)),然后分别逐步往反方向靠,打印的时候就以两个指针的位置和宽度m作为判定条件。#include <bits/stdc...
2022-04-06 12:54:00 351
原创 蓝桥杯8天复习(day5)
目录1、错误票据(13年省赛——3月23日)2、取球游戏(12年省赛——3月10日)3、方格分割(17年省赛——3月20日)4、数的幂次(3月17日)1、错误票据(13年省赛——3月23日)注意:这道题恶心在输入,要吃回车或者空格,抑或是加空格,全部恶心的点都在输入#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define MOD 1000000009using namespace...
2022-04-06 12:19:14 3752
原创 蓝桥杯31天冲刺打卡(day29)
目录1、饮料换购(15年省赛)2、密文搜索(15年国赛)3、蓝桥骑士1、饮料换购(15年省赛)简单模拟题#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define MOD 1000000009using namespace std;typedef long long LL;int n,s; int main() { cin>>n; int nn=n;.
2022-04-05 10:58:48 773 3
原创 蓝桥杯复习8天(day4)
目录1.ASC2、修改数组(19年省赛——3月28日)3、大胖子走迷宫(19年国赛——3月25日)4、数字三角形(20年省赛——3月19日)1.ASC答案:762、修改数组(19年省赛——3月28日)注意:初始化的时候初始到1e6+5#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define MOD 1000000009using na...
2022-04-05 00:06:27 727
原创 蓝桥杯8天复习(day3)
1、分考场(17年国赛——3月25日)第二次做还是错了,判定条件那里没处理好,还想为啥一直是1,然后认真看了看发现一个dfs就到底了,完全没有回溯一说,所以我们需要好好处理判定条件。!!!注意:这里ks需要>=res来进行剪枝不然会T#include <bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;typedef long long LL;int n,m;int g[105][105],p[105].
2022-04-04 12:50:07 750
原创 蓝桥杯31天冲刺(day27)
目录1、七段码(20年省赛)2、数正方形(19年国赛)#include <bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;typedef long long LL;int main() { //a b c d e f g int a1=7; //ab af bg bc cg cd de eg ef fg int a2=10; /*abg abc afe afg baf ..
2022-04-03 19:41:41 420
原创 方格分割(DFS)
传送门解析:题目说到旋转对称算一种。下面的两个图属于同一种。还有两种情况,旋转一下就好了。所以最后答案要/4.因为题目说将6*6的方格裁成2部分,所以这是一个中心对称图形,因此我们只需考虑左半边或右半边,也就是标记的时候同时标记对称的两个点,回溯的时候同时释放该两个点。dfs的出口就是到边界(0或6)。我们一开始要从中间出发才可以做到中心对称(3,3)。代码:#include <iostream>#include <..
2022-03-31 22:43:01 255 2
原创 蓝桥杯31天冲刺打卡(Day24)
目录A 跑步锻炼解析:代码:B 直线解析:代码:C 循环小数解析:代码:D 卡片换位解析:代码:A 跑步锻炼解析: 日期题。我们只需要判定当前日是否星期一或1号即可,判定星期一就开个week变量,1号就用day。代码:#include <iostream>#include <cstdio>#include <cstring>#include <...
2022-03-31 21:32:33 507
原创 蓝桥杯31天冲刺打卡(Day21)
目录A 最短路解析:代码:B 修改数组解析:代码:解析:这是一道最短路问题,可以用迪杰斯特拉、bellford、floyd来做,不过由于这是一道填空题,没必要浪费太多时间,并且用肉眼看便能得出答案(6)。(以下代码非博主手写,都是从网上找回来的,便于读者学习最短路)代码:迪杰斯特拉#include <iostream>#include <cstring>using namespace std;c...
2022-03-29 19:10:25 598
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人