<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[became_a_wolf的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/became_a_wolf</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; became_a_wolf]]></copyright><item><title><![CDATA[对拍程序]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/65446055</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/65446055</guid><author>became_a_wolf</author><pubDate>Thu, 23 Mar 2017 17:20:36 +0800</pubDate><description><![CDATA[对拍程序，可以用于检查代码，写一个标准程序来生成数据，来检验另一个程序的正确性
1.cpp
#include
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    cout<<a+b<<endl;
    return 0;
}
2.cpp
#include
using namespace std;
int ma]]></description><category></category></item><item><title><![CDATA[城市间紧急救援 ,复杂点的最短路，记录路径，记录最短路个数等]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/64158351</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/64158351</guid><author>became_a_wolf</author><pubDate>Mon, 20 Mar 2017 21:34:52 +0800</pubDate><description><![CDATA[5-7 城市间紧急救援   (25分)



作为一个城市的应急救援队伍的负责人，你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候，你的任务是带领你的救援队尽快赶往事发地，同时，一路上召集尽可能多的救援队。
输入格式:

输入第一行给出4个正整数NN、M]]></description><category></category></item><item><title><![CDATA[纯拓扑排序，稍加改良时间。]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/64140034</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/64140034</guid><author>became_a_wolf</author><pubDate>Mon, 20 Mar 2017 20:57:27 +0800</pubDate><description><![CDATA[#include
using namespace std;
#define LL long long
#define INF 99999999
#define put() puts("***********")
const int N = 2e3+10;
int du[N];
int a[N][N];
vectorvec[N];
queueQ;
int main(){
    int n;
   ]]></description><category></category></item><item><title><![CDATA[01背包+记录路径]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/62229676</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/62229676</guid><author>became_a_wolf</author><pubDate>Wed, 15 Mar 2017 16:44:36 +0800</pubDate><description><![CDATA[复习一下
#include
using namespace std;
int a[]={0,23,34,113,54,33,65,77,132};
int path[110][500];
int p[500];
int dp[110][500];
void solve(int i,int j){
    while(i&&j){

        //01背包只存在与取与不取两]]></description><category></category></item><item><title><![CDATA[是否完全二叉搜索树  （对一个排序二叉树进行判别是否为完全二叉树）]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/61655803</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/61655803</guid><author>became_a_wolf</author><pubDate>Sun, 12 Mar 2017 22:11:27 +0800</pubDate><description><![CDATA[2 是否完全二叉搜索树   (30分)



将一系列给定数字顺序插入一个初始为空的二叉搜索树（定义为左子树键值大，右子树键值小），你需要判断最后的树是否一棵完全二叉树，并且给出其层序遍历的结果。

输入格式：

输入第一行给出一个不超过20的正整数N；第二行给出N个互不相同的正整数，其间以空格分隔。

输出格式：

将输入的N个正整数顺序插入一个初始为空的二叉搜索树。在第]]></description><category></category></item><item><title><![CDATA[centos6.0静态ip VMWare centos6.0静态ip设置]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/54317859</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/54317859</guid><author>became_a_wolf</author><pubDate>Tue, 10 Jan 2017 21:06:36 +0800</pubDate><description><![CDATA[centos6.0静态ip VMWare centos6.0静态ip设置 







因为使用虚拟机有时候ip会变化，用putty和一些工具不方便，所以就设置成静态ip






方法/步骤










先获取window的ip地址

ipconfig/all









按照window的ip地址设置]]></description><category></category></item><item><title><![CDATA[HDU 5898 数位dp]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52599857</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52599857</guid><author>became_a_wolf</author><pubDate>Tue, 20 Sep 2016 20:59:45 +0800</pubDate><description><![CDATA[题意：给出一个区间[l, r]，问其中数位中连续的奇数长度为偶数并且连续的偶数长度为奇数的个数。（1
例如 12223333 就不满足条件，因为存在奇数个奇数（1个1）
#include
#define LL long long
#define N 100010
#define INF 0x3f3f3f3f
using namespace std;


LL dp[25][25][25];
i]]></description><category></category></item><item><title><![CDATA[HDU 5900 区间dp]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52584683</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52584683</guid><author>became_a_wolf</author><pubDate>Mon, 19 Sep 2016 12:27:54 +0800</pubDate><description><![CDATA[题意：

给出n对数keyi,vali表示当前这对数的键值和权值，可以操作将连续的两个数合并，如果满足gcd(a[i],a[i+1])>1，得到

的价值是两个数的权值和，每次合并两个数之后，这两个数就会消失，然后旁边的数会接上

比如1 2 3 4 合并了 2 3 则 剩下1 4也可以合并。

思路：



1：处理出任意区间内的所有数是否可以合并

对于当前的[l,]]></description><category></category></item><item><title><![CDATA[HDU 5726    求gcd=k的区间的个数 （二分+RMQ）]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52529697</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52529697</guid><author>became_a_wolf</author><pubDate>Tue, 13 Sep 2016 21:27:15 +0800</pubDate><description><![CDATA[题意：给一个数组a，大小为n，接下来有m个询问，每次询问给出l、r，定义f[l,r]=gcd（al，al+1，...，ar），问f[l,r]的值 和 有多少对（l'，r'）使得f[l',r']=f[l,r]。n

思路：

　　第一步比较简单，预处理一下，定义f[i][j]为：ai开始，连续2^j个数的最大公约数，所以f[1][0]=a[1],f[1][1]=gcd(a1,a2),f[1]]]></description><category></category></item><item><title><![CDATA[HDU 5869 求区间中不同连续序列的gcd的个数（树状数组）]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52529071</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52529071</guid><author>became_a_wolf</author><pubDate>Tue, 13 Sep 2016 20:29:46 +0800</pubDate><description><![CDATA[题意：
长度n的序列, m个询问区间[L, R], 问区间内的所有子段的不同GCD值有多少种.
思路：
区间GCD收敛的很快，所以直接暴力预处理出到每个数字截至的后缀串有哪些GCD以及它们的位置，就是每个数字向前看有哪些GCD出现，这个数量是很少的。
1.枚举区间的右坐标，然后枚举出所有的以这个为右坐标为区间左坐标。
2.并求出他们这个连续区间的gcd，去重,（即重复的不再记录）
3.]]></description><category></category></item><item><title><![CDATA[HDU 5877  dfs+离散化+树状数组（树上维护）]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52516250</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52516250</guid><author>became_a_wolf</author><pubDate>Mon, 12 Sep 2016 19:29:29 +0800</pubDate><description><![CDATA[题意：
　给出一棵n个结点的树和一个数k,
 每个节点上有权值​​,
 问有多少个有序对(u,v)  (u,v)满足u是v的祖先,
 a[u] * a[v] 

思路：
首先这是在树上进行操作，然后就是找满足祖先关系，并且a[u] * a[v] 
找点的a[u] * a[v] 
然后这就转化成找树上点有多少个小于某个值得问题了，对于这种问题要转换成树状数组进行维护，时间复杂度就变]]></description><category></category></item><item><title><![CDATA[POJ 1185 经典状压dp （模板）]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52497309</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52497309</guid><author>became_a_wolf</author><pubDate>Sat, 10 Sep 2016 22:18:07 +0800</pubDate><description><![CDATA[炮兵阵地




Time Limit: 2000MS
 
Memory Limit: 65536K


Total Submissions: 26096
 
Accepted: 10072




Description

司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成，地图的每一格可能是山地（用"H" 表示），也可]]></description><category></category></item><item><title><![CDATA[uva 1218 完美服务器 树形dp 染色问题]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52490581</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52490581</guid><author>became_a_wolf</author><pubDate>Fri, 09 Sep 2016 21:17:11 +0800</pubDate><description><![CDATA[详解见紫书 283页。
#include
#define INF 10000000
using namespace std;
const int N= 10010;
vectorvec[N];
int dp[N][3];  ///
int vis[N];
void dfs(int u){
    int len=vec[u].size();
    vis[u]=1;
    dp[u][0]=]]></description><category></category></item><item><title><![CDATA[UVA 1220 树形dp 最大独立集+状态标记]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52489737</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52489737</guid><author>became_a_wolf</author><pubDate>Fri, 09 Sep 2016 18:41:19 +0800</pubDate><description><![CDATA[题意：公司里n个人形成一个树形结构，即除了boss之外每个员工都有唯一的直属上司。要求选尽量多的人，但不能同时选择一个人和他的直属上司。问最多能选多少人，以及判断人数最多的前提下得方案是否是唯一结果。




思路：树形dp，就是求在树上的最大独立集合，加唯一性特判.

首先需要明确的一点是： 这是一个树形结构。

A：然后就是要明确 我们要存入两种结果值，一个是最大的独立集合的]]></description><category></category></item><item><title><![CDATA[POJ 2486  Apple Tree 树形dp+背包]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52432103</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52432103</guid><author>became_a_wolf</author><pubDate>Sun, 04 Sep 2016 14:20:36 +0800</pubDate><description><![CDATA[题意：
给一棵苹果树 ，树上有n个结点，每个结点有 ai个苹果，（不存在父子关系），让求最多走k步之后可以吃到的最多的苹果数目，（走动必须在相邻结点之间进行发生，从一个结点到另一个相邻结点是需要消耗一个步数。），每次都先从结点1开始走。


思路：首先看到这个题就要先想起树形结构，然后这道题只存在相邻关系，即是一个无向树，
此题让求最多走k步可以吃到的苹果数目，
所以状态可以先表示成在]]></description><category></category></item><item><title><![CDATA[POJ 1947 Rebuilding Roads 树形dp+01背包]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52431640</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52431640</guid><author>became_a_wolf</author><pubDate>Sun, 04 Sep 2016 12:42:25 +0800</pubDate><description><![CDATA[题意：

给了一棵树，树上有n个结点，然后让求最少删去多少条边，可以使剩下的一棵子树中存在p个结点。
思路：
dp[x][ j ]  表示 把x结点当成根时，形成的恰好含有j个结点的子树，至少删除的边数。
此时考虑递推式；
对于x结点 的dp[x][j] 他的状态可以由子结点推出来，
对于孩子结点son来说；
1）当不需要son时  dp[x][j]= dp[x][j]+1;]]></description><category></category></item><item><title><![CDATA[POJ 2454 Jersey Politics 分组问题 随机化算法]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52425446</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52425446</guid><author>became_a_wolf</author><pubDate>Sat, 03 Sep 2016 21:12:39 +0800</pubDate><description><![CDATA[题意：给出3*k个数，将它们分成三分，每份k个数，要求至少存在有两份，使得每一份的k个数的和大于500*k。
思路：
先从大到小的进行排序，然后只需要将前2*n大的数进行随机的分配成两组就行了。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define LL long lon]]></description><category></category></item><item><title><![CDATA[POJ 3318 Matrix Multiplication 随机化算法]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52419442</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52419442</guid><author>became_a_wolf</author><pubDate>Fri, 02 Sep 2016 21:59:39 +0800</pubDate><description><![CDATA[题意：
给出三个n*n的矩阵A,B,C看是否A*B=C;
#include
#include
#include
#include
#include
#include
#include
#define bug puts("************")
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
const in]]></description><category></category></item><item><title><![CDATA[POJ 3101 Astronomy 轨道相遇问题，求n个分数的最小公倍数]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52324859</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52324859</guid><author>became_a_wolf</author><pubDate>Fri, 26 Aug 2016 08:56:38 +0800</pubDate><description><![CDATA[题意：
给你一个n，然后给你n个星球的周期。让你求出经过多长时间可以使所有的星球可以在条直线上。
思路：
 求轨道相遇问题,设经过了t个时间星球A转的角度为 (2π/T1)*t    星球B转的角度为(2π/T2)*t 他们在一条直线上
所以可得：(2π/T1)*t-(2π/T2)*t=n*π，半圈就相遇，所以n取1。-->t=T1*T2/(2T1-2T2);
然后需要求出所有的星球与第]]></description><category></category></item><item><title><![CDATA[POJ 2891 Strange Way to Express Integers解线性同余方程组(中国剩余定理不互质版)]]></title><link>https://blog.youkuaiyun.com/became_a_wolf/article/details/52317359</link><guid>https://blog.youkuaiyun.com/became_a_wolf/article/details/52317359</guid><author>became_a_wolf</author><pubDate>Thu, 25 Aug 2016 19:35:11 +0800</pubDate><description><![CDATA[题意：给出k个模方程组：x mod ai = ri。求x的最小正值。如果不存在这样的x，那么输出-1.
题解：
由于这道题目里面的ai、ri之间不满足两两互质的性质，所以不能用中国剩余定理直接求解。

不过，我们可以模仿中国剩余定理的做法来解决这个问题。

如果只有一个方程：x mod a0 = r0。那么，显然x的最小正值为a0+r0。

根据模的性质，我们容易得知，x+a0*k]]></description><category></category></item></channel></rss>