- 博客(11)
- 收藏
- 关注
原创 P4047 [JSOI2010]部落划分
题目有两个要求:一是要求得k个野人居住地的最优划分(即不同部落住最近野人的野人最远)二是求最优划分下离得最近的部落我的思路如下:每个点都与剩余n-1个点联通,k个部落相当于k个子图,子图之间最近的点的距离最大,而部落内的点之间的距离都比这个距离要小(如果不更小就不是最优的)。如果用最小生成树,记录下最小生成树的边,去掉其中最大的k-1条边,剩下的边中没有边比他们更大,同时剩下k个子图了,这k个子图就是k个部落的最优划分。(与这题有相同思路的可以看P1195口袋的天空)上述解决了第一个问题,即找到最优
2022-03-15 20:02:34
282
原创 P3366 【模板】最小生成树(堆优化的prim算法)
堆优化的prim算法#include<queue>#include<iostream>#include<algorithm>#include<stdlib.h>#include<stdio.h>#include<string.h>#include<math.h>using namespace std;const int INF=0x3f3f3f3f; //定义无穷大struct{ int to; in
2022-03-13 23:30:26
396
原创 P4779 【模板】单源最短路径(标准版)
前向星存图+堆优化的Dijkstra#include<stdio.h>#include<stdlib.h>#include<iostream>#include<string.h>#include<math.h>#include <algorithm>#include<string>#include<queue>using namespace std;const int INF=21474836
2022-03-06 23:30:57
280
原创 P1907 设计道路
这是一道典型的最短路径题,用Dijkstra算法算法解决。算法复杂度为O(n^2)。朴素的Dijkstra算法使用与稠密图单源最短路径,即边数远远大于顶点数的图,如果使用优先队列实现的Dijkstra算法称为堆优化的Dijkstra算法,算法复杂度可以达到O(m*log n)。(m为边的条数,n为顶点数)#include<iostream>#include<string.h>#include<stdlib.h>#include<algorithm>
2022-03-03 16:42:30
226
原创 P2895 [USACO08FEB]Meteor Shower S
这道题看上去是一道平平无奇的搜索题,但是有几个比较不容易被注意坑:我用一个数组mp[310][310]来存储整个地图上陨石降落的时间与地点,在处理时产生了冲突如下图(图画得很丑 ):根据题意,陨石降落地点周围的4个点都不能遍历,而输入数据不是根据时间点输入的,因此如果不进行处理的话,存在第一个时间点化为焦土的点先输入,后输入的第三个时间点的陨石数据会覆盖掉第一个时间点的信息,而该点早就不能通过。(如上图点(3,2)和(2,3))同时已经被砸过陨石的点可能还没还会被砸,也需要判断是否会导致信息出错。
2022-03-01 21:06:57
463
原创 P1162 填涂颜色
基本思路:要将被1包围的0改为2,很自然想到用DFS或者BFS算法,这里我使用DFS算法。然而,要找到被1包围的0并不容易,我们可以将问题转化为将不被1包围的0改为2,被1包围的0不变,而只需在输出时做判断修改输出既可。#include<iostream>#include<string.h>#include<stdlib.h>#include<algorithm>#include<math.h>using namespace std;
2022-02-28 22:22:13
151
原创 P1596 Lake Counting S(DFS求连通块个数)
大致思路为:遍历所有点,找到‘W’时,DFS其周围的点,遇到 ‘.’ 就返回,同时将‘W’改为 ‘.’ ,一次DFS结束连通块个数加一。#include<iostream>#include<string.h>#include<stdlib.h>#include<algorithm>#include<math.h>using namespace std;char mp[111][111];int n,m;int dx[8]={0,0
2022-02-28 22:17:31
133
原创 P1352 没有上司的舞会
树形dp练习题一(被考研复试机试折磨)我爱算法!!!!dp[u][0]表示u这个人去舞会的情况下的最大快乐值,dp[u][1]表示在u这个人不去参加舞会的情况下的最大快乐值。对于任意节点u来说,设其孩子节点为p,1、dp[u][0]的值为其孩子节点的dp[p][1](其孩子不能去)的总和。2、dp[u][1]的值为其孩子节点dp[p][1]与dp[p][0]的最大值总和(孩子节点可以去也可以不去,选择能使快乐最大的那种情况)。(ps:类似于在每个节点进行决策,根据去或者不去两种情况导致的不同快乐
2022-02-27 17:45:00
226
原创 Windows如何查看自己的CUDA版本
方法一打开cmd,输入:nvcc --versionnvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2019 NVIDIA CorporationBuilt on Sun_Jul_28_19:12:52_Pacific_Daylight_Time_2019Cuda compilation tools, release 10.1, V10.1.243 ##这里就是版本号方法二(1)、按win+Q,输入NVIDIA Contro
2020-05-18 13:05:09
15824
7
原创 四位booth乘法的verilog实现
最近做了一个四位的booth乘法器,在这里记录一下我的实验过程,要说明的是,我认为最好的方法是使用有限状态机的方法(做完之后才知道),我这里的方法是根据比较的结果来生成使能信号,进而控制运算模块的运算。算法流程先简单介绍一下在这篇文章中booth乘法的前期准备及算法流程:首先,符号是会参与运算的,booth乘法也是计算补码的,得出的结果也是补码。1、先对被乘数进行符号拓展,就是将被乘数变成...
2020-04-07 13:23:52
3821
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅