回溯法确实不是很好理解掌握的,学习紫书的代码细细体会。 1 #include 2 3 char S[100]; 4 int n, L, cnt; 5 6 int dfs(int cur) 7 { 8 if(cnt++ == n) 9 {10 for(int i ...
分类:
其他好文 时间:
2015-01-08 14:38:28
阅读次数:
223
题意:给一个带权无向图,和一些询问,每次询问两个点之间最大权的最小路径。分析:紫书上的题解是错误的,应该是把原算法中的加号变成max即可。但推理过程还是类似的,如果理解了Floyd算法的话,这个应该也很容易理解。 1 #include 2 #include 3 using namespace s.....
分类:
其他好文 时间:
2015-01-05 18:07:30
阅读次数:
112
背景:小紫书上习题
学习:1.条件运算符?:; 的运用可以简化,高效代码。?的优先级大于=,小余算术和关系运算符。与多重赋值语句一样采用右结合。(用到了dp的思想)
代码:#include
#include
int main(void){
int num[80];
char str[81];
int t;
scanf("%d",&t);
while(t--){
int...
分类:
其他好文 时间:
2015-01-04 23:11:32
阅读次数:
369
题意:给出一个n行m列的点阵,求共有多少条非水平非竖直线至少经过其中两点。分析:首先说紫书上的思路,编程较简单且容易理解。由于对称性,所以只统计“\”这种线型的,最后乘2即是答案。枚举斜线包围盒的大小,如果盒子的长宽ab互质,则是可以的。这种盒子共有(m-a)(n-b)个,但要减去其中重复的。如果有...
分类:
其他好文 时间:
2015-01-03 17:10:50
阅读次数:
180
题意:一块圆形土地,在圆周上选n个点,然后两两连线,问把这块土地分成多少块?分析:首先紫书上的公式是错的,不过根据书上提供的思路很容易稍加修改得到正确答案!然后推公式吧,这里用到平面图的欧拉公式,V - E + F = 2,其中V表示顶点个数,E表示边的个数,F表示面的块数。减去最外面的无限大的面,...
分类:
编程语言 时间:
2014-12-29 21:23:32
阅读次数:
395
题意:有一根绳子,在上面随机选取k个切点,将其切成k+1段,求这些线段能够成k+1边形的概率。分析:要构成k+1边形,必须最长的线段小于其他k个线段之和才行。紫书上给出了一种解法,但是感觉理解得不是太好,所以又去网上找了其他解法。知乎上有人问过这个问题,而且给出了很多种严格的解法。最后代码里将(1L...
分类:
其他好文 时间:
2014-12-27 22:59:10
阅读次数:
196
题意:两个盒子里各有n颗糖,每天有p的概率从第一个盒子里取一颗糖,1-p的概率从第二个盒子里去一颗糖。直到某一天打开某个盒子忽然发现没糖了,求另一个盒子里剩余糖果数的期望。分析:紫书上面已经分析的很清楚了,而且也给出了解决精度损失问题的方法,就是先取对数然后再乘幂。 1 #include 2 #i....
分类:
其他好文 时间:
2014-12-23 21:05:58
阅读次数:
105
八连块问题 紫书上的简单搜索 渣渣好久才弄懂
#include
#include
using namespace std;
const int M = 1000003;
int x[4] = { -1, 1, 0, 0}, y[4] = {0, 0, -1, 1};
int dis[M], h[M], s[M][9], e[9];
int aton(int a[])
{
int t...
分类:
其他好文 时间:
2014-12-18 12:01:30
阅读次数:
169
紫书---P60硬币问题------完全背包、DP#include #include #include using namespace std;#define INF 0x3f3f3f3f#define N 1010int n,s;int w[N]; //w表示n种硬币的面值...
分类:
其他好文 时间:
2014-11-18 14:43:05
阅读次数:
144
紫书---P61点集配对问题-------状压DP#include #include #include using namespace std;#define INF 0x3f3f3f3fstruct Point{ double x,y,z;}p[20+2];int n;double dp[(...
分类:
其他好文 时间:
2014-11-18 14:40:54
阅读次数:
224