自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

untilyouydc

You don’t think other people’s understandings as the nuts and bolts in that you are yourself of great account and proud as a kin

  • 博客(31)
  • 收藏
  • 关注

原创 算法作业(装载问题)

实验六 装载问题###问题描述与实验目的:有n个集装箱要装上2艘载重量分别为c1和c2的轮船,其中第i个集装箱的重量为wi,要求确定是否有一个合理的装载方案可将这个集装箱装上这2艘轮船。如果有,找出一种装载方案。注意,在满足的条件下才可能将这个集装箱装上这2艘轮船。###输入输入有若干组测试数据(不超过20组)。每组测试数据有3行:其第1行上是集装箱个数n,(n<20),第2行...

2018-10-31 17:36:15 3561

原创 汇编(实现32位 加法,并调用int 10h 输出结果)

定义双子类型: A DD 21111112H B DD 11111111H上面的A和B都是32位,而ax,dx都是16位,所以需要把高16位和低16位分开进行加法。其中先处理低16位,用add。高16位可能会有进位,所以用adc。A 32位数在内存中的表示 21 11 11 11 12 A+1即为 11,A+4即为21至于输出,使用了xlat表,先自己建立...

2018-10-31 16:34:36 3739

原创 算法作业 (最短路+记录全部路径)

思路:采用n*logn的优化迪杰斯特拉算法,求出最短路,反向建图以后,在dfs搜索即可,用set+vector记录路径,注意vector的传递需要加引用(用string 就不用加引用)。实现非常简单,直接看代码就行。#include <bits/stdc++.h>using namespace std;const int maxn=100;typedef long lo...

2018-10-31 16:14:34 1251

原创 A - Altruistic Amphibians Gym - 101933A (贪心+dp)

题意:坑里有一堆青蛙,青蛙有身高、跳跃高度、体重。青蛙可以叠罗汉,但是不可以撑起超过自己体重的重量。问有多少青蛙可以跳出去。体重总和<=1e8思路:因为最重的青蛙肯定不能出去,所以应该是保证体重轻的能出去,而重的在底下,所以,先按体重排序。设dp[i]表示,体重为i的最大高度可以达到多少,那么判断dp[i]+h与d 的大小关系就知道这只青蛙能否出去了。因为能托起的青蛙不能超过最底...

2018-10-28 23:45:22 728

原创 操作系统 同步互斥题目

互斥问题:(一)   图书馆有100个座位,每位进入图书馆的读者要在登记表上登记,退出时要在登记表上注销。要几个程序?有多少个进程?答:一个程序;为每个读者设一个进程思路:先找到互斥的关系,当多个人来的时候,服务台只能为一个人进行登记或者是注销操作,所以需要为服务台的登记和注销操作设一个互斥量。至于100个作为如何安排是不重要的,我们只要关系能否让人进来就行。这个时候就有两种情况:...

2018-10-28 19:15:04 10437

原创 跳马问题(算法作业)

#实验五 跳马问题 ###问题描述与实验目的: 给定8*8方格棋盘,求棋盘上一只马从一个位置到达另一位置的最短路径长。注意马是走“日”形的。###输入输入有若干测试数据。每组测试数据仅1行,每行上有2个方格pos1、pos2,之间用一个空格隔开,每格方格表示棋盘上的一个位置,该位置由表示列的1个字母(a-h)及表示行的一个数字(1-8)构成,如“d7”表示第4列第7行。###输出...

2018-10-25 15:29:22 10815

原创 3-idiots HDU - 4609(FFT)

思路:原理和求 ai+aj=ak的数量相同,去重方式略有不同。先求出卷积结果,每次枚举最大边,并且找到比它小的两边和大于第三边的数量即可。去重主要包括下面几种情况:1. 一条边大于,一条边小于2. 两条边都大于3. 其中一条边为自身代码:#include <bits/stdc++.h>using namespace std;typedef long lon...

2018-10-24 09:17:32 287

原创 A+B Problem(FFT)

描述给定 n 个整数,问有多少种方式选择三个整数 (i,j,k),使得 ai+aj=ak(i≠j≠k)?两种方式不同当且仅当有序三元组(i,j,k)的元素至少有一个不同。输入第一行为一个整数T,表示测试数据组数。对于每组测试数据:第一行为一个整数n。第二行为n个整数a1,a2,…,an中间以空格分割。T≤101≤n≤2⋅105|ai|≤500输出对于每组测试数据,输出“C...

2018-10-23 09:58:34 293

原创 A * B Problem Plus HDU - 1402 (FFT入门)

利用fft加速乘法,直接套模板就行。代码:#include <bits/stdc++.h>using namespace std;typedef long long LL;typedef long long ll;const int MAXN= 2e5+10;const int maxn=1e5+10;const double PI = acos(-1.0);s...

2018-10-20 10:48:46 143

原创 FFT模板

原理参考博客:https://blog.csdn.net/f_zyj/article/details/76037583代码:#include <bits/stdc++.h>using namespace std;typedef long long LL;typedef long long ll;const int MAXN= 2e5+10;const int max...

2018-10-20 10:47:32 145

原创 Fire POJ - 2152 (树形dp)

题意:给你一颗树,每个点都有一个w值,代表在这个点修建工程需要花费w,还有一个d值,代表离这个点距离小于d的点可以作为这个点的建立工程的点。每条边都有权重,求出覆盖所有点的最小花费。思路:首先分析,是否具有最优子结构性质,发现任意一颗子树的最小值,都满足最优子结构。考虑动态规划的做法。这个题的难点在于可以选一个点来覆盖其他点,所以我们的一个想法必然是枚举这个被选取的点。设dp[u][j...

2018-10-20 09:42:38 379

原创 rep movsd ,repz CMPSB , CMPSW , CMPSD ,cld std用法

CLD指令功能:将标志寄存器Flag的方向标志位DF清零。在字串操作中使变址寄存器SI或DI的地址指针自动增加,字串处理由前往后。相反功能指令是STD,将方向标志位DF置1,在字串操作中使SI或DI的地址指针自动递减,字串处理由后往前。 movsd是把ds:[si]开始的DWORD传送到es:[di]开始的内存中(将ds:[si]处的4个字节数据送到es:[di]处),如果DF标...

2018-10-19 11:09:26 2430

原创 优先队列优化最短路+记录所有最短路径

普通的最短路做法是n^2的复杂度,利用优先队列实现可以优化到n*logn 的复杂度。记录所有路径需要记录反向边,dfs搜索一次,并用set记录即可。具体实现看代码:#include <bits/stdc++.h>using namespace std;const int maxn=100;typedef long long ll;struct Edge{ ...

2018-10-17 23:06:03 1320

原创 Just Random HDU - 4790 (数形结合)

思路:这道题有一种很好的理解方式,就是数形结合。我们可以把题目中的第一组数据理解为下面这幅图。第一组数据里a=0,b=5,那么x的取值范围就是[0,5],c=0,d=5,那么y的取值范围也是[0,5],那么图中正方形内的所有点,包括边缘上的点,就是全部可能被选到的情况。并且每个点被选到的可能性相同。接下来我们再看p=3,m=0,那么(x+y)%p=m→→x+y=k*p+m→→x+y=3k...

2018-10-08 23:21:45 184

原创 Fibonacci Tree HDU - 4786 (巧妙的运用最小生成树)

题目大意:给你图的N个点和M条双向边。告诉你每条边的权值。权值为1表示该边是白边,权值为0表示该边为黑边。问:能否找到一棵生成树,使生成树白边的个数恰好为fibonacci数。如果能构成这样的fibonacci树,输出Yes,否则输出No。思路:给你权值要么是0,要么是1,然后让你求白色边的数量关系。白色边的数量不就等价于边上的权值之和......考虑最少的白边数量,自然是最小...

2018-10-08 10:37:46 314

原创 最大全1正方形(简单dp)

描述      飞哥最近 得到 了一大块 n*m 的土地 ,他想在这块土地 上建一个正方 形的农场 ,但是 这块土 地有些地方 被大石头 占着,无法 使用 ,于是 飞哥想来问你 在这块土地 上能建成的农场 的最大 边 长为多少 ?输入 第一个数T表示数组组数每组 数据 一开 始有两个 整数 n和 m,表示 土地 的长和宽。接下 来是个 n*m 的矩阵 ,元素 只有 0 和 1 ...

2018-10-08 00:38:33 1324

原创 Best Cow Fences POJ - 2018(斜率优化dp)

思路:直接写出表达式 sum[i]-sum[j]/(i-j)发现是个斜率的式子,所以考虑直接用斜率优化来做。其余部分根简单,只要注意要维护一个长度不超过k的区间,在入队的时候需要处理成 i-k+1的形式。代码:#include <iostream>#include <stdio.h>#include <algorithm>using na...

2018-10-07 16:14:30 272

原创 汇编语言 数值回送操作符(type,size,length)

1. type   格式为 type  expression    如果该表达式是变量,则返回该变量的以字节数表示的类型,DB为1,DW为2 ,DD为4,DF为8.... 如果表达式是标号,则返回代表该标号的数值类型,NEAR是-1,FAR为-2。如果表达式是常数,则应该回送0 。 2 length 对于变量中使用DUP 的情况,返回分配的单元数(例如  3 dup(?))...

2018-10-07 15:05:16 18024 1

原创 汇编语言中标号和变量的区别

变量和标号都是用户定义的符号地址,标号有两个属性,段基地址、偏移地址变量有三个属性,段基地址、偏移地址和数据类型一般来说,标号只在代码段中被定义,而变量则可以被定义在数据段和代码段中。标号是个死数,指的是一个固定的值,一般指向的目标不是程序段就是数据段 而且定义完就不能变了。编译程序的时候,编译器把标号统统用具体的立即数替换。变量就是活的了,想怎么用就怎么用,一般这个指向的地址是RAM...

2018-10-07 14:16:49 5854 1

原创 Lawrence HDU - 2829 (斜率优化dp)

思路:还是先列出普通的dp方程,dp[i][j]=min(dp[k][j-1]+s(i,k+1))  表示到前i个站点,用了j次爆炸,得到的最小值,其中s(i,k+1)表示从k+1到i的连乘积。直接做必然是n^3 因为需要枚举k。考虑到dp[i][j],当j为定值,它随着i单调递增的,所以考虑使用斜率优化来做。在分析之前先处理一下任意区间的连乘积问题:有两种解决方案: 1. 记录前缀和...

2018-10-07 12:13:55 302

原创 码元,码元速率,波特率,比特率,数据率的理解

码元:在数字通信中常常用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为(二进制)码元。而这个间隔被称为码元长度。值得注意的是当码元的离散状态有大于2个时(如M大于2个)时,此时码元为M进制码元。(百度百科)这里说的比较官方,一下子没反应过来。在谢希仁这本书中有一个实例,假定基带信号为101011000110111010…如果直接传送,则每个码元携带的信息是1bit(可以理...

2018-10-06 19:22:25 36579 6

原创 Pearls POJ - 1260 (简单dp)

大致题意:给出几类珍珠,以及它们的单价,要求用最少的钱就可以买到相同数量的,相同(或更高)质量的珍珠。【规定买任一类的珍珠n个(价格为p),都要支付(n+10)*p的钱,即额外支付10*p】 例如样例Input的第二个例子:31 101 11100 12需要买第一类1个,第二类1个,第三类100个按常规支付为 (1+10)*10 + (1+10)*11 +...

2018-10-06 12:32:07 210

原创 Print Article HDU - 3507 (斜率优化 dp)

作为斜率优化dp的入门题,可以说的非常经典了。斜率dp是一类数形结合的题目,数的方面让你写出程序,而形的方面则让你更清楚的理解正确性。首先,这题的状态转移方程是很好写的:dp[i]=min(dp[i],dp[j]+(sum[j]−sum[i])2+M)我们优化的最终目的就是要在o(1)的时间内可以求出最优的dp[j]。下面的做法就是斜率dp的一般套路:首先,在斜率dp中,一定要...

2018-10-05 23:47:22 178

原创 Straight Master Gym - 101775J (差分的应用)

思路:以前没做过差分的题目,这题想不到用差分,感觉很神奇。思路:构造差分序列b【i】=a【i】-a【i-1】,比如1 3 2 5 1的差分序列就是1 2 -1 3 -4,这样将区间【l,r】内的所有数减一相当于把b【l】减一, 把b【r+1】加一,基于这个思想我们从左到右扫整个序列,遇到正数就找他右面离他最近的负数,把这个负数尽量变为0,变为0后若正数还有剩余,就继续往右找负数直到这个正数用...

2018-10-05 21:21:48 279

原创 Color Gym - 100548F (容斥原理)

思路:先考虑满足不相邻的条件,很容易写出,C(k,m)*k*k^(n-1)。但是这样并不是严格使用了k种颜色的,还包括了使用了1,2,3,....k-1种颜色的,所以,我们需要将其去重。去重当然是考虑容斥:设使用了前k种颜色为f[k],那么前k-1则为f[k-1],需要注意的是f[k-1]中包含k-2,k-3.....1,同理f[k-2]包括了k-3,k-4....1。看下表:f[i-...

2018-10-04 22:58:42 309

原创 Cut the Sequence POJ - 3017(dp+单调队列优化)

思路:dp[i]表示前第i项的最小值。很容易写出状态转移方程:dp[i]=min(dp[j]+max(a[j+1],a[i])),j<=i;优化的思想是:我们需要快速的在前面找到一个j,同时还要找出j+1到i之间的最大项是什么,这样就能快速实现,最直接的思路是求RMQ,但是这题可以用单调队列。用单调队列维护一个递减的序列,对于当前的a[i],先将队尾小于或等于a[i]的元素删掉,...

2018-10-04 21:41:45 274

原创 Fxx and game HDU - 5945(单调队列优化dp)

思路:考虑反着dp,从dp[1]倒推dp[x]因为dp[i]<=dp[j]  j<i  ,所以考虑用单调队列来优化。除法不用考虑,考虑加法就行。代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int inf=0x3f3f3f3f;const int ...

2018-10-03 23:32:58 299

原创 Trade HDU - 3401 (单调队列优化dp)

思路:首先把dp状态方程写出来:设dp[i][j]表示第i天有j个股票的最大值。那么转移可以有三种情况:在第i+1天什么都不干,dp[i+1][j]=dp[i][j]在买进一些股票:dp[i+1][j]=max(dp[i+1][j],dp[i+1-w-1][k]-(j-k)*ap在卖出一些股票:dp[i+1][j]=max(dp[i+1-w-1][k]+(j-k)*bp) 可以...

2018-10-03 22:45:43 231

原创 D Tree HDU - 4812 (树分治+逆元线性预处理+map映射)

思路:首先一个最重要是思路:ai*aj%mod=k%mod 即a[i]=k*inv[a[j]]%mod。所以对于一条路径上的乘积是否为k,我们考虑将其分成2部分,第一部分乘起来放map里,第二部分乘了以后去map里找,如果找到,说明有这样的组合可以乘积为k,既满足题意。具体实现的思路自然是点分治,一次找重心做为根节点,需要注意的是,每次重新选根节点,都要清空map,因为重新找一颗子树时,相...

2018-10-02 23:20:11 262

原创 Boatherds POJ - 2114 (树分治)

思路:还是和以前求路径值<=k,一样的套路,改下cal函数里计算==k的方法就行。代码:#include<iostream>#include<map>#include<string>#include<cstring>#include<vector>#include<algorithm>#includ...

2018-10-01 20:58:59 154

原创 聪聪可可 HYSBZ - 2152 (树分治)

思路:这题和https://blog.csdn.net/qq_40774175/article/details/82909005,非常类似,这里只不过多了一步转化。它要处理3的倍数,为了方便,我们在建图和统计长度的时候都进行模3操作,这样,最后两个点之间的路径只可能是0,1,2,然后我们就可以利用他们进行组合成3的倍数,首先0和0组合,然后1和2组合,然后2和1组合(在这题中(1,2)和(2,...

2018-10-01 10:56:50 240

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除