自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 https://www.bilibili.com/video/av11809033?spm_id_from=333.338.__bofqi.17

1111

2018-04-30 23:36:29 52287 1

原创 求任意多边形的面积

给定多边形的顶点坐标(有序),让你来求这个多边形的面积,你会怎么做?我们知道,任意多边形都可以分割为N个三角形,所以,如果以这为突破点,那么我们第一步就是把给定的多边形,分割为数个三角形,分别求面积,最后累加就可以了,把多边形分割为三角形的方式多种多样,在这里,我们按照如下图的方法分割:图1S点作为起始点(点1),a->e依次作为点2,3……。一个三角形的面积是怎样的呢?根据线性代数的知识,...

2018-04-28 20:57:36 339

原创 斜率优化DP和四边形不等式优化DP整理

当dp的状态转移方程dp[i]的状态i需要从前面(0~i-1)个状态找出最优子决策做转移时 我们常常需要双重循环(一重循环跑状态 i,一重循环跑 i 的所有子状态)这样的时间复杂度是O(N^2)而 斜率优化或者四边形不等式优化后的DP可以将时间复杂度缩减到O(N)O(N^2)可以优化到O(N) ,O(N^3)可以优化到O(N^2),依次类推斜率优化DP和四边形不等式优化DP主要的原理就是利用斜率或...

2018-04-27 20:20:16 189

原创 uva11584 dp最少回文串划分

#include<iostream>#include<cstdio>#include<cstring>using namespace std;char str[1010];int flag[1010][1010];int dp[1010];int l;const int INF=0x3f3f3f3f;void pre(){ /*令flag[...

2018-04-26 21:55:35 212

原创 刘汝佳 代码仓库 https://github.com/aoapc-book/aoapc-bac2nd/tree/master/ch9

https://github.com/aoapc-book/aoapc-bac2nd/tree/master/ch9

2018-04-25 22:06:30 3442

原创 整行读入

scanf("%[^\n]s",s);

2018-04-25 20:46:23 242

原创 最长上升子序列(LIS)长度的O(nlogn)算法 hdu 1950 Bridging signals

http://acm.hdu.edu.cn/showproblem.php?pid=1950===================================最长上升子序列(LIS)的典型变形,熟悉的n^2的动归会超时。LIS问题可以优化为nlogn的算法。定义d[k]:长度为k的上升子序列的最末元素,若有多个长度为k的上升子序列,则记录最小的那个最末元素。注意d中元素是单调递增的,下面要用到...

2018-04-25 19:18:22 117

原创 格林公式计算多边形的面积

算法导论第31章第一节第8题。只要是边不相交的简单多边形,也就是说,不仅凸多边形,还有各种奇形怪状的凹多边形,都可以用格林公式求出面积。格林公式:若函数P(x,y), Q(x,y)在由一条或几条光滑曲线所围成的闭区域D上连续,且有连续的一阶偏导数,则有L为区域D的边界曲线,并取正方向。边不相交的简单多边形正好是由数条线段围成的闭区域,所以可以使用格林公式。令P=0, Q=x,则面积S = 设第i个...

2018-04-25 17:01:07 11770 1

原创 poj3304

#include <iostream>#include <math.h>#include <cstdio>using namespace std;#define MAXM 110#define EPS 1e-8typedef struct{ double x1,y1,x2,y2;}Segment;Segment segment[MAX...

2018-04-24 22:43:32 128

原创 poj2318TOYS【二分+点与直线位置判断】

Language:Default TOYSTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 12094 Accepted: 5833DescriptionCalculate the number of toys that land in each bin of a partitioned toy box. Mom and dad h...

2018-04-24 21:38:10 100

原创 数学基础 正旋转

一般的来讲大家喜欢称旋转为正时针旋转,或者逆时针旋转,例如我让一个点绕圆心旋转90°,大家都会理解为逆时针吧这个点旋转90°,实际上这个说法是存在漏洞和错误的,当我们的坐标系不使用左手坐标系时这个说法是错误的,所以在此定义 一个正旋转。即,2d中,坐标轴,x轴朝y轴方向旋转90°和y轴重合的方向视为正旋转。(通俗的来讲就是x轴旋转到y轴只需要旋转90°,那么这个旋转就是正旋转)下图黑色旋转方向就是...

2018-04-24 20:58:51 1139

原创 数学基础 向量叉乘

向量的叉乘,即求同时垂直两个向量的向量,即c垂直于a,同时c垂直于b(a与c的夹角为90°,b与c的夹角为90°)c =  a×b = (a.y*b.z-b.y*a.z , b.x*a.z-a.x*b.z  , a.x*b.y-b.x*a.y)以上图为例a(1,0,0),b(0,1,0),c=a×b = (0,0,1) 叉乘的几何意义  |c|=|a×b|=|a| |b|sinα   (α为a,b...

2018-04-24 20:54:12 6378

原创 矩阵快速幂优化递推式 例:斐波那契数列

首先是一点基础知识:① 矩阵相乘的规则:矩阵与矩阵相乘 第一个矩阵的列数必须等于第二个矩阵的行数 假如第一个是m*n的矩阵 第二个是n*p的矩  阵则结果就是m*p的矩阵且得出来的矩阵中元素具有以下特点:第一行第一列元素为第一个矩阵的第一行的每个元素和第二个矩阵的第一列的每个元素乘积的和 以此类推 第i行第j列的元素就是第一个矩阵的第i行的每个元素与第二个矩阵第j列的每个元素的乘积的和。② 单位矩...

2018-04-24 20:28:54 400

原创 zipper poj2192 字符串上的dp

题意:给你三个字符串,问你能否由前两个合成第三个,且要求不改变前两个字符串的顺序。题目保证第三个字符串的长度为前两个字符串的长度之和。 题解:此题用暴力,深搜都可以过(数据太水)。这里给出DP的解法。dp[i][j](bool 型)代表第一个字符串的前i个字符和第二个字符串的前j个字符能否合成第三个字符串的前i+j个字符串。则状态转移方程为:1 if(dp[i-1][j]&&s1[...

2018-04-24 10:59:55 103

原创 Nise-Anti-AK Problem 计蒜客网络赛

水题Description:Peppa has been learning math recently, he is trapped by a easy problem. He is given a sequence of n numbers, what he need to do is finding the number ai which have the largest number f(a...

2018-04-23 19:36:24 192

原创 reversion count 计蒜客网络赛

Description:There is a positive integer X, X's reversion count is Y. For example, X=123, Y=321; X=1234, Y=4321. Z=(X-Y)/9, Judge if Z is made up of only one number(0,1,2...9), like Z=11,Z=111,Z=222,do...

2018-04-23 19:33:08 141

原创 计蒜客网络赛 copy and submit

#include<bits/stdc++.h>using namespace std;typedef long long ll;int n,k,j,i;bool isPrime( ll n ){ if (n <= 3) { return n > 1; } if ( n % 2 == 0 || n % 3 ==...

2018-04-23 19:30:49 125

原创 Goldbach 计蒜客网络赛(巨大素数)

Description:Goldbach's conjecture is one of the oldest and best-known unsolved problems in number theory and all of mathematics. It states:Every even integer greater than 2 can be expressed as the sum...

2018-04-23 19:21:09 157

原创 快速幂和矩阵快速幂

快速幂这个东西比较好理解,但实现起来到不老好办,记了几次老是忘,今天把它系统的总结一下防止忘记。  首先,快速幂的目的就是做到快速求幂,假设我们要求a^b,按照朴素算法就是把a连乘b次,这样一来时间复杂度是O(b)也即是O(n)级别,快速幂能做到O(logn),快了好多好多。它的原理如下:  假设我们要求a^b,那么其实b是可以拆成二进制的,该二进制数第i位的权为2^(i-1),例如当b==11时...

2018-04-22 11:35:56 106

原创 省赛训练3 G HDU 1759 Matrix Revolution(BFS)

Matrix RevolutionTime Limit: 3000 ms /Memory Limit: 32768 kbDescriptionLele 现在不仅会整数A+B,A*B,还会矩阵A+B,矩阵A*B。一天,Lele在百无聊赖的时候,突然想起一个很无聊的问题。对于给定的一个矩阵A,A+A^2+A^3+...+A^K 是多少呢?其中A^2 表示两个矩阵的乘积A*A,A^3表示三个矩阵的乘积A...

2018-04-21 22:31:39 181

原创 省赛训练3 A Simple Math Problem 矩阵快速幂优化 hdu1757

A Simple Math ProblemTime Limit: 1000 ms /Memory Limit: 32768 kbDescriptionLele now is thinking about a simple function f(x).If x < 10 f(x) = x.If x >= 10 f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 *...

2018-04-21 22:16:31 135

原创 矩阵快速幂和矩阵的基本操作

参考文章:http://blog.csdn.net/shiwei408/article/details/8818386http://www.cnblogs.com/yan-boy/archive/2012/11/29/2795294.htmlhttp://www.cnblogs.com/vongang/archive/2012/04/01/2429015.html矩阵是线性代数的知识。。。后悔没好...

2018-04-21 22:09:13 196

原创 HDU1756 Cupid's Arrow (判断点在多边形内) 省赛训练3 计算几何

Cupid’s ArrowTime Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1781    Accepted Submission(s): 661Problem Description 传说世上有一支丘比特的箭,凡是被这支箭射到的人,就会深深...

2018-04-21 21:59:00 159

原创 下一排列问题(全排列暴力)

A Number PuzzleTime Limit: 1000 ms /Memory Limit: 32768 kbDescriptionLele 最近上课的时候都很无聊,所以他发明了一个数字游戏来打发时间。这个游戏是这样的,首先,他拿出几张纸片,分别写上0到9之间的任意数字(可重复写某个数字),然后,他叫同学随便写两个数字X和K。Lele要做的事情就是重新拼这些纸牌,组成数字 T ,并且 T +...

2018-04-21 21:53:29 313

原创 省赛的第三次训练赛 B线段树的RMQ结构

线段树是一个完全二叉树,或称为是一个完美二叉树,所有的叶子深度相同,维护的是一个区间,每个节点维护的是父亲的区间二分后的其中一个子区间。当有n个元素师,可以再O(longn)时间内完成,RMQ操作(区间最值查询)::给定S和T,求元素在区间【s,t】的两种操作:寻找最值和元素的更换最底下的一行就是数列a[n];因此,越向上的节点对应的区间越大,反之相反      如果所查询的区间和当前区间没有交集...

2018-04-21 21:29:19 162

原创 vscode环境配置

转载自:http://blog.csdn.net/c_duoduo/article/details/51615381 懒得自己配置或自己配置出现不明问题的朋友可以点这里: 【VSCode】Windows下VSCode便携式c/c++环境 http://blog.csdn.net/c_duoduo/article/details/52083494 下载解压即可食用。————————– 以下是原文 —...

2018-04-21 20:29:53 56928 3

原创 省赛第三次训练赛

队友都有事出去了,自己一个写的比赛  心力交瘁大明A+BTime Limit: 1000 ms /Memory Limit: 32768 kbDescription话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。现在,给你两个正的小数A和B,你的任务是代表大明计算出A+B的值。...

2018-04-21 20:17:36 132

原创 多重部分和题

#include<bits/stdc+.h>using namespace std;bool dp[1000][10000];struct {int val,num}a[1000];int main(){ int n,m,i,j,k,tot; cin>>n>>tot; memset(dp,false,sizeof(dp...

2018-04-20 22:03:07 145

原创 ACM_数位DP

引言数位DP: 与记数有关的一种动态规划, 一般题目是 : 求0 ~ n 之间有多少个符合….条件的数, 或者l ~ r 之间有多少个符合条件的数, 第二种一般来说可以转化到第一种[0, r] - [0, l) = [l, r] 这类问题通常会和取模, 记数, 数字和, 等运算联系在一起; 本文将以: 1.数位DP的所用定理(其实就一个同模) 2.数位DP的状态, 状态转移, 初始化 3.数位DP...

2018-04-20 19:57:32 260

原创 区间dp 石子归并问题

今天偷玩电脑,就学了几个模板题,水一水吧~描述: 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。分析:要求n个石子归并,我们根据dp的思想划分成子问题,先求出每两个合并的最小代价,然后每三个的最小代价,依次知道n个。定义状态dp [ i ] [ j ...

2018-04-18 21:17:34 254

转载 [组合数学] 第一类,第二类Stirling数,Bell数

一.第二类Stirling数        定理:第二类Stirling数S(p,k)计数的是把p元素集合划分到k个不可区分的盒子里且没有空盒子的划分个数。        证明:元素在拿些盒子并不重要,唯一重要的是各个盒子里装的是什么,而不管哪个盒子装了什么。        递推公式有:S(p,p)=1 (p>=0)         S(p,0)=0  (p>=1)         S...

2018-04-17 20:47:23 210

原创 计数dp 划分数 多重集组合数

 挑战程序设计竞赛划分数:把n个无区别的物品划分成不超过m组。dp[i][j]=j的i划分的总数。dp[i[j]=dp[i][j-i]+dp[i-1][j] 即:将j个物品分成i份,有两种情况:每份划分都大于等于1 dp[i][j-i]; 存在有一份以上用0划分dp[i-1][j]int main(){ int n,m; cin>>n>>m; dp...

2018-04-17 20:33:13 297

转载 hdu dp题集

DP是难点,供自已以后系统学习。1.Robberies 连接 :http://acm.hdu.edu.cn/showproblem.PHP?pid=2955     背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱  最脑残的是把总的概率以为是抢N家银行的概率之和… 把状态转移方程写成了f[j]=max{f[j],f[j-q[i].v]+q[i].mone...

2018-04-17 19:51:25 337

原创 第八届山东省acm省赛dp

Problem DescriptionLYD loves codeforces since there are many Russian contests. In an contest lasting for T minutes there are n problems, and for theith problem you can get ai−di∗ti points, where ai in...

2018-04-17 19:45:56 152

原创 比赛前要打的头文件什么的

#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<string>#include<cstring>#include<algorithm>#include<vector>#include&a

2018-04-17 17:21:32 150

原创 ACM山东大学2018 校赛i

A Love StoryDescriptionIn order to make the girlfriend happy,CZY decided to send flowers to CM every week. CZY has some coins, a total of N (1 <= N <= 20) different denominations. Every denomina...

2018-04-16 20:47:42 598

原创 1159最长公共子序列

Common SubsequenceTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 32693    Accepted Submission(s): 14786Problem DescriptionA subsequence of a gi...

2018-04-16 19:30:58 130

原创 2018山东大学acm校赛B

YangFan's NumberYangFan is a wayward boy who likes to count in his own way.The number he writes may be 0 or 1 for each digit, and the last non-zero digit may be 2, and the value of the k-th digit xk d...

2018-04-16 19:12:38 889

原创 hdu2191 多重背包

看着背包九讲做的,本来想的优化得特别难,然后用01的想法做了一下,竟然1A了代码如下#include<bits/stdc++.h>using namespace std;int t,nvalue,nkind,value[105],weight[105],bag[105],dp[105];int main(){ scanf("%d",&t); whi...

2018-04-13 21:42:28 142

转载 多重背包问题:O(VN)

多重背包问题:有N种物品和容量为V的背包,若第i种物品,容量为v[i],价值为w[i],共有n[i]件。怎样装才能使背包内的物品总价值最大? 网上关于“多重背包”的资料倒是不少,但是关于怎么实现O(N*V)算法的资料,真得好少呀,关于“单调队列”那部分算法,又没说明得很清楚,看了几遍没看懂原理,只好自己动脑去想怎么实现O(N*V)算法。 若用F[i][j]表示对容量为j的背包,处理完前i种物品后,...

2018-04-13 20:34:31 324

空空如也

空空如也

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

TA关注的人

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