<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Daniel]]></title><description><![CDATA[比你优秀的人，却比你还努力]]></description><link>https://blog.csdn.net/daniel_csdn</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; daniel_csdn]]></copyright><item><title><![CDATA[计算几何模板]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52752305</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52752305</guid><author>daniel_csdn</author><pubDate>Fri, 07 Oct 2016 22:28:41 +0800</pubDate><description><![CDATA[#include<bits/stdc++.h>
#define vct point
using namespace std;const double pi=atan2(0,-1);
const double eps=1e-8;
int sgn(double d){
    if(fabs(d)<eps)return 0;
    return d<0?-1:1;
}struct point{]]></description><category></category></item><item><title><![CDATA[poj1797Heavy Transportation（dijkstra）]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52084661</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52084661</guid><author>daniel_csdn</author><pubDate>Mon, 01 Aug 2016 12:33:37 +0800</pubDate><description><![CDATA[这题和昨天做的poj2253 Frogger（用单源最短路dijkstra的思路求解） 几乎一模一样，只是点的数量范围从200变成了1000，不优化O(n^3)肯定超时，所以要用优先队列优化到O(n^2logn)。 
需要注意的一点就是两点不可达则令w=0。 
如果起点和终点重合，那么输出一个不小于1000000的数即可。#include<cstdio>
#include<cstring>
#inc]]></description><category></category></item><item><title><![CDATA[poj2253 Frogger（用单源最短路dijkstra的思路求解）]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52080659</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52080659</guid><author>daniel_csdn</author><pubDate>Sun, 31 Jul 2016 20:43:25 +0800</pubDate><description><![CDATA[???????????????n????????????????????????????????????????????n???????????????????????dijkstra???????????d[i]??????i????????w[i][j]???i?j?????? 
??? 
 1. ??i???????????j??d[i]??????d[i]=min(max(d[j],w[i]]]></description><category></category></item><item><title><![CDATA[%f和%lf]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52078668</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52078668</guid><author>daniel_csdn</author><pubDate>Sun, 31 Jul 2016 15:06:20 +0800</pubDate><description><![CDATA[scanf：float用%f，double用%lfprintf：float和double都用%f，因为严格来说printf没有定义%lfPOJ 1521 Entropy（求哈夫曼编码）用%lf输出wa到死，用%f就ac了]]></description><category></category></item><item><title><![CDATA[poj1065 Wooden Sticks(没有交集元素的lis的条数)]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52074271</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52074271</guid><author>daniel_csdn</author><pubDate>Sat, 30 Jul 2016 18:32:52 +0800</pubDate><description><![CDATA[题意：给你n个棍子，棍子有两个属性l和w，开启机器加工这些棍子，如果满足l1<=l2且w1<=w2，加工完棍子1之后便可以加工棍子2，否则要再次启动机器，问最少要启动几次？ 
题意等价于：给出若干个偏序，求出这样一个集合的大小，该集合中任意两个偏序都不可比较。分析：如果将棍子按照其中一个属性升序（属性值相同就按另一属性值升序），那么就是求另一个属性的lis链最少条数，要求各条lis链之间不包含相同下]]></description><category></category></item><item><title><![CDATA[二分图判定]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52068132</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52068132</guid><author>daniel_csdn</author><pubDate>Fri, 29 Jul 2016 19:49:23 +0800</pubDate><description><![CDATA[如果图中的点可以划分成两个集合使得集合内部的点之间没有边相连。 
判定方法就是二色染色法，将一个点染成一种颜色，与之相邻的点染成另一种颜色，如果发现相邻两点颜色相同，则不是二分图。#include<bits/stdc++.h>
using namespace std;
const int maxn=1000;vector<int>nxt[maxn+5];
int vis[maxn+5];bool d]]></description><category></category></item><item><title><![CDATA[poj1011Sticks(dfs+剪枝)]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52065399</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52065399</guid><author>daniel_csdn</author><pubDate>Fri, 29 Jul 2016 15:24:32 +0800</pubDate><description><![CDATA[将n(n<=64)个木棒拼接成若干等长的木棒，要求等长的木棒越短越好（设为len）。 
一看就是一个复杂度为O(n!)的dfs，肯定会超时，所以要加上一些剪枝才行。
由于木棒越长越不灵活，所以要优先考虑，因此将木棒降序排序。
搜索中如果当前拼接的木棒总长再接上一根木棒x之后长度为len，这种方案最终不成功，那么比x短的木棒不再考虑。
如果拼接过程中一根都没拼，最终却失败，那么别的木棒不再考虑。
如果]]></description><category></category></item><item><title><![CDATA[hdu5763Another Meaning 2016 Multi-University Training Contest 4(kmp+dp)]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52058811</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52058811</guid><author>daniel_csdn</author><pubDate>Thu, 28 Jul 2016 20:34:05 +0800</pubDate><description><![CDATA[首先用kmp找出所有模式串的位置放在id中（vector类型），然后做dp，dp方程为： 
对于第i个位置，如果第j( j < i 中最大的 j )个位置满足 
id[i]-id[j]>=son.size()（即模式串在主串中的这两个位置不重叠）， 
则d[i]=d[i-1]+d[j]； 
如果这个j不存在则d[i]=d[i-1]+1。#include<bits/stdc++.h>
using na]]></description><category></category></item><item><title><![CDATA[最近公共祖先lca离线]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52049196</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52049196</guid><author>daniel_csdn</author><pubDate>Wed, 27 Jul 2016 20:33:14 +0800</pubDate><description><![CDATA[利用dfs和并查集实现点对的最近公共祖先，首先递归到叶子节点，然后在返回时确定父子关系，按照这样的顺序确定的父子关系之后出现的公共父节点便是最近公共祖先#include<bits/stdc++.h>
using namespace std;
const int maxn=1000;
const int maxm=1000;int lca[maxn+5][maxn+5];
vector<int>nxt]]></description><category></category></item><item><title><![CDATA[线段树点修改 区间查询]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52039416</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52039416</guid><author>daniel_csdn</author><pubDate>Tue, 26 Jul 2016 20:39:38 +0800</pubDate><description><![CDATA[const int maxn=1000;int sum[maxn*4];void build(int cur,int l,int r){
    if(l==r){
        cin>>sum[cur];
        return;
    }
    int m=(l+r)/2;
    if(p<=m)update(cur*2,l,m);
    else update(cur*2+1]]></description><category></category></item><item><title><![CDATA[rmq区间最值]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52039140</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52039140</guid><author>daniel_csdn</author><pubDate>Tue, 26 Jul 2016 20:06:23 +0800</pubDate><description><![CDATA[const int maxn=1000;
const int maxb=10;//maxb=log2(maxn)int n;
int a[maxn+5];
int d[maxn+5][maxb+5];void init(){//初始化d数组
    for(int i=1;i<=n;i++)d[i][0]=a[i];//j为0    for(int j=1;(1<<j)<=n;j++){]]></description><category></category></item><item><title><![CDATA[树状数组]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52038617</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52038617</guid><author>daniel_csdn</author><pubDate>Tue, 26 Jul 2016 19:03:55 +0800</pubDate><description><![CDATA[#include<bits/stdc++.h>
using namespace std;
const int maxn=1000;int a[maxn+5];
int c[maxn+5];
int n;int lowbit(int x){
    return x&(-x);
}void add(int x,int d){//将a[x]增加d,修改就往右
    while(x<=n){]]></description><category></category></item><item><title><![CDATA[poj1221 UNIMODAL PALINDROMIC DECOMPOSITIONS]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52027206</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52027206</guid><author>daniel_csdn</author><pubDate>Mon, 25 Jul 2016 20:30:54 +0800</pubDate><description><![CDATA[题意很简单，给你一个正整数数n，将n拆分成一个正整数数字序列，要求数字序列和为n且是个回文并且左半部分的序列非降。问n拆分成这样的序列有几种方案？设d(n,k)表示n左右两边是k的时候的方案数，那么递推式： 
 
表示当前这一种方案(n,k)加上方案(n-2i,i)的方案数，注意一下边界。本题其实就是一个递推式，由于用到了记忆化所以就写得跟dp一样了。。。。#include<cstdio>
#inc]]></description><category></category></item><item><title><![CDATA[关机时间长 蓝屏driver power state failue]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/52016764</link><guid>https://blog.csdn.net/daniel_csdn/article/details/52016764</guid><author>daniel_csdn</author><pubDate>Sun, 24 Jul 2016 22:22:44 +0800</pubDate><description><![CDATA[显卡驱动有问题，找到合适自己电脑的显卡驱动安装即可解决。]]></description><category></category></item><item><title><![CDATA[ubuntu引导问题]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/51996253</link><guid>https://blog.csdn.net/daniel_csdn/article/details/51996253</guid><author>daniel_csdn</author><pubDate>Fri, 22 Jul 2016 16:34:02 +0800</pubDate><description><![CDATA[ubuntu在安装前： 
首先要在bios中将security boot设置成disable（ 
如果设置成enable，将不会出现引导，但是可以在设置成disable之后，用boot repair修复引导 
），然后将启动改成uefi only或者uefi first，如果是legacy或legacy first的话，将不会出现引导，而且连修复都修复不了。如何用boot repair修复引导（确保]]></description><category></category></item><item><title><![CDATA[磁盘类型由动态转换成基本]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/51995977</link><guid>https://blog.csdn.net/daniel_csdn/article/details/51995977</guid><author>daniel_csdn</author><pubDate>Fri, 22 Jul 2016 16:12:01 +0800</pubDate><description><![CDATA[打开命令行 
输入： 
diskpart 调用分区命令 
list disk 列出所有磁盘 
select disk 0 选中磁盘0 
convert basic 转换成基本类型，此操作将删除该磁盘上的所有数据]]></description><category></category></item><item><title><![CDATA[win7安装到gpt分区]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/51995898</link><guid>https://blog.csdn.net/daniel_csdn/article/details/51995898</guid><author>daniel_csdn</author><pubDate>Fri, 22 Jul 2016 16:05:34 +0800</pubDate><description><![CDATA[分区格式以前是mbr格式，现在多了gpt格式（用于64位计算机），gpt格式比mbr格式的读写速度快。 
win7安装在mbr格式(win7安装在gpt格式分区时会弹出错误对话框)，win8、win10安装在gpt格式。 
将win7安装在gpt格式分区上也非常简单，只需要将win8(或win10)的引导文件bootmgfw.efi（获取方式有两种：一、win8(或win10)系统下的C:\Wind]]></description><category></category></item><item><title><![CDATA[最短编辑距离]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/51941071</link><guid>https://blog.csdn.net/daniel_csdn/article/details/51941071</guid><author>daniel_csdn</author><pubDate>Mon, 18 Jul 2016 12:48:47 +0800</pubDate><description><![CDATA[51nod 1183 编辑距离 
题意：插入或删除或修改最少的字符，使两个字符串相同 
设d[i][j]表示字符串a[1~i]和b[1~j]的最小编辑距离，则 
 
注意边界。#include<bits/stdc++.h>
using namespace std;
const int maxn=1000;
const int INF=0x3f3f3f3f;
char a[maxn+5];
char]]></description><category></category></item><item><title><![CDATA[错误信息：Address already in use: connect]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/51891820</link><guid>https://blog.csdn.net/daniel_csdn/article/details/51891820</guid><author>daniel_csdn</author><pubDate>Tue, 12 Jul 2016 19:25:29 +0800</pubDate><description><![CDATA[原因是短时间内new Socket操作过多， 而socket.close()操作并不能立即释放绑定的端口， 而是把端口设置为TIME_WAIT状态过段时间(默认240s)才释放， (用netstat -na可以看到)最后系统资源耗尽， (windows上是耗尽了pool of ephemeral ports 这段区间在1024-5000之间)，一种最容易实现但是很耗时的解决办法就是在new Sock]]></description><category></category></item><item><title><![CDATA[输入输出流]]></title><link>https://blog.csdn.net/daniel_csdn/article/details/51891807</link><guid>https://blog.csdn.net/daniel_csdn/article/details/51891807</guid><author>daniel_csdn</author><pubDate>Tue, 12 Jul 2016 19:23:42 +0800</pubDate><description><![CDATA[流的关闭一定要放在finally中，因为要确保在异常发生情况下仍然可以关闭流。
File构造函数做的事情大概有：（1）保存文件名及路径。
File构造函数没做的事情大概有：（1）保存文件类型。]]></description><category></category></item></channel></rss>