自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 网络流——A - Drainage Ditches HDU - 1532

网络流板子题,直接套用。 1.cnt–边的数量,从0开始 2.head[]–每一个点最后一条边的编号 3.next–每一条边的下一条边,同一个起点对应。 4.v–每一条边指向的点 5.w–每一条边的残量 6.level[]–标记分层深度#include<cstdio>#include<cstring>#include<algorithm&g...

2018-08-31 13:47:45 194

原创 Square HDU - 1518

#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;int T,a[30],vis[30],n,flag,sum,goal,maxn; bool cmp(int a,int b){

2018-08-12 08:54:47 122

原创 Sticks POJ - 1011

借鉴的这个人的题解: 说一下三条剪枝函数,当运行到剪枝函数,可以理解为搜索失败了。 1.第一个剪枝:如果当前搜索a[i]时,发现因为a[i]的原因不能使木棍分成等长的几部分,当goal等于a[i]时,也就不需要在搜索了。 2,第二个剪枝:(引上面博客内容)假设 要搜索目标长度为 7 :绳长有 7 6 3 2 2. 假设 第一个7 搜索完,接下来搜索6 发现6没有1来配对,程序会接...

2018-08-12 00:08:22 252

原创 Unique Snowflakes UVA - 11572

大意:求最大不重复连续数列的长度 题解: 1.段查找问题,紫书上有,滑动窗口方式。 2.用set集合类存储,用set存数是有序的 3.先给定一个区间长度,当右端数字在set中一直没出现就一直往右扩展while(!st.count(a[r])&&r<=n) st.insert(a[r++]); 4.当重复时,去掉左端的数字st.erase(a[l++]); 5....

2018-08-11 23:39:52 130

原创 Cave Painting

这里写链接内容k很小的时候,能满足的n已经很大了,对k进行遍历,如果(n%i) == i-1,直到最后,那么它就成立#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace s

2018-08-11 00:12:08 353

原创 Three displays

题解: 从整个数列中间挑一个数s[k],c[k],从左边挑一个s[i]小于它的并且是c[i]最小的,从右边挑一个 s[i]大于它的,c[i]最小的,每一轮进行一次比较:m3 = min(m3,(m1+c[i]+m2));#include<iostream>#include<cstdio>#include<cstring>#include&l...

2018-08-11 00:07:28 196

原创 Non-square Equation

题解: 公式推导: x = (-s(x)+sqrt( s(x)*s(x) + 4*n ) )/2; 1.n最大是1e18,因为x2 + s(x)·x - n = 0, 所以x*x<=n,所以x最大也就是1e9, 因此,s(x)最大也就是9个9,是81, 2,枚举s(x)的所有情况,计算出x,如果x是个整数,并且x各个位置之和等于s(x),那么就把他记录下来, 并且找出最小...

2018-08-10 23:58:25 190

原创 Color the ball 扫描线

引用块内容 题解: 1.没接收一个区间,比如i,j,记录次数的数组arr[i]++,arr[j+1]–; 2.最后得出第i个点出现次数的值时,cout<#include<iostream>#include<cstring&a

2018-08-10 23:45:18 104

原创 4 Values whose Sum is 0

题解: 1.计算出A,B中所有元素两两的和,放到s1里。 2.计算C,D中所有元素两两的和,放到s2里。 3.对s1进行排序。 4.遍历s2的每一个元素,用二分法的方式在s1里找出和它相加为0的值#include<iostream>#include<cstring>#include<cstdio>#include<algorithm&

2018-08-10 23:38:41 163

原创 Magic Forest

题目大意:找小于等于n的三个数,既能组成三角形,也要抑或值为0;题解:第一条边为i,从1开始,第二条边为j,从i开始 1.先是i^j,再用0^(i^j)得到第三条边 2,若第三条边大于等于j小于等于n,并且能构成三角形(这里是两小边之和大于第三边)则OK。//亦或的简单运用 #include<iostream>#include<cstdio>#...

2018-08-10 23:15:56 275

原创 Brackets

1.dp[i][j]表示从i到j匹配的括号的最大数量。 2.转移方程dp[i][j] = max(dp[i][j],dp[i+1][k-1]+dp[k+1][j]+2); 表示当第k个括号和第i个括号匹配时,即ss[i] == ss[k] 括号数量为第i+1~k-1的括号数量和第k+1~j的括号数量+2#include<iostream>#include<cs...

2018-08-10 08:44:14 759

翻译 Halloween Costumes 区间dp

1.初始化为最坏情况,即区间多长,就用多少件衣服。 2.i是用来枚举起始位置,j枚举终点位置,k代表分割区间的位置。 3.如果从第计算dp[i][j]时,如果第i+1~j中没有一件衣服和第i天一样, dp[i][j] = dp[i+1][j]+1; 如果有a[i] == a[k] dp[i][j] = min(dp[i][j],dp[i+1][k-1]+dp[k][j]) 代表第i...

2018-08-09 23:35:17 141

原创 石子合并——圆形版

石子合并的圆形版和直线版差不多,关键是怎么把圆变成直线来处理。 以最小值为例: 1.先初始化mi[m][m]; 2.枚举区间长度len,当区间长度为1时,相应的mi[len][i] = 0; 3.枚举起始位置i; 4.枚举插入位置,mi[j][i]代表从i开始,长度为j的最小得分。 5.将圆变成直线的方法是,当i+j大于n时,第二段开始的位置就要重新计算, 设pos为第二段开始的坐标...

2018-08-09 22:52:59 657

原创 石子合并问题——直线

撒大声地

2018-08-09 22:02:55 1565

微机原理课件集

微机原理课件集合

2018-12-24

空空如也

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

TA关注的人

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