<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[gzdrn的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/gzdrn</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gzdrn]]></copyright><item><title><![CDATA[马尔科夫链]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/89160735</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/89160735</guid><author>gzdrn</author><pubDate>Tue, 09 Apr 2019 20:20:34 +0800</pubDate><description><![CDATA[　在MCMC(一)蒙特卡罗方法中，我们讲到了如何用蒙特卡罗方法来随机模拟求解一些复杂的连续积分或者离散求和的方法，但是这个方法需要得到对应的概率分布的样本集，而想得到这样的样本集很困难。因此我们需要本篇讲到的马尔科夫链来帮忙。

1.马尔科夫链概述

　　　　马尔科夫链定义本身比较简单，它假设某一时刻状态转移的概率只依赖于它的前一个状态。举个形象的比喻，假如每天的天气是一个状态的话，那个今天是不...]]></description><category></category></item><item><title><![CDATA[蒙特卡罗方法]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/89160628</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/89160628</guid><author>gzdrn</author><pubDate>Tue, 09 Apr 2019 20:18:19 +0800</pubDate><description><![CDATA[蒙特卡罗方法引入

　　　　蒙特卡罗原来是一个赌场的名称，用它作为名字大概是因为蒙特卡罗方法是一种随机模拟的方法，这很像赌博场里面的扔骰子的过程。最早的蒙特卡罗方法都是为了求解一些不太好求解的求和或者积分问题。比如积分：

θ=∫baf(x)dxθ=∫abf(x)dx

　　　　如果我们很难求解出f(x)f(x)的原函数，那么这个积分比较难求解。当然我们可以通过蒙特卡罗方法来模拟求解近似值。如何模...]]></description><category></category></item><item><title><![CDATA[iteration 与 epoch]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/88599390</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/88599390</guid><author>gzdrn</author><pubDate>Sat, 16 Mar 2019 15:43:28 +0800</pubDate><description><![CDATA[神经网络的神奇之处就在于权重是通过训练自动得出的。所谓训练，就是让神经网络在训练数据集上跑一遍，看看损失函数的值怎么样。如果损失函数的值足够小，小到符合我们的需求，那就说明神经网络拟合得很好了，训练大功告成了（实际上并非如此，因为仅仅知道拟合得很好并不够，我们还要知道神经网络是不是拟合得太好了，也就是过拟合。所以还需要用测试数据集来测试是否过拟合。不过这里就姑且就当训练完成了把。）反之，如果损失函...]]></description><category></category></item><item><title><![CDATA[hdu 1016 Prime Ring Problem]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/51854500</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/51854500</guid><author>gzdrn</author><pubDate>Thu, 07 Jul 2016 21:40:26 +0800</pubDate><description><![CDATA[#include
#include
#include
#include
using namespace std;

int n;
int a[21]={0};
int book[21]={0};
int prime[100];
void dfs(int count)//count 为已排好的个数,回溯法
{
	int i,j;
	int temp;
	if(count==n)
	{
		for(i]]></description><category></category></item><item><title><![CDATA[POJ 1664 整数划分问题]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/51843264</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/51843264</guid><author>gzdrn</author><pubDate>Wed, 06 Jul 2016 23:44:48 +0800</pubDate><description><![CDATA[整数划分问题是算法中的一个经典命题之一，有关这个问题的讲述在讲解到递归时基本都将涉及。所谓整数划分，是指把一个正整数n写成如下形式：
       n=m1+m2+...+mi; （其中mi为正整数，并且1 
       如果{m1,m2,...,mi}中的最大值不超过m，即max(m1,m2,...,mi)
       例如当n=4时，他有5个划分，{4},{3,1},{2,2},{2]]></description><category></category></item><item><title><![CDATA[2016"百度之星" - 资格赛(Astar Round1) 1004()]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/51420600</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/51420600</guid><author>gzdrn</author><pubDate>Mon, 16 May 2016 00:21:16 +0800</pubDate><description><![CDATA[#include
#include
#include
#include
#include
using namespace std;

char a[100000];
map num;


//所有的字符串通过SORT的方法hash，然后计数，注意map的使用
int main()															
{
	int n;
	scanf("%d",&n);
	//num.clear();]]></description><category></category></item><item><title><![CDATA[bell-manford判负环模板]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/51136197</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/51136197</guid><author>gzdrn</author><pubDate>Tue, 12 Apr 2016 19:02:34 +0800</pubDate><description><![CDATA[#include
#include
using namespace std;

#define MAX 0x3f3f3f3f
#define N 1010
int nodenum, edgenum, original; //点，边，起点

typedef struct Edge //边
{
	int u, v;
	int cost;
}Edge;

Edge edge[N];
int dis[N]]]></description><category></category></item><item><title><![CDATA[hdu 1856 More is better]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/51064087</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/51064087</guid><author>gzdrn</author><pubDate>Tue, 05 Apr 2016 13:39:17 +0800</pubDate><description><![CDATA[并查集，但统计的是每一个集合的元素个数。因此，把每个元素的的个数放入num[i]中，通过并查集的合并把元素合并
#include
#include
//#include
//using namespace std;
int n;
int tot;
int fa[10000010];
int num[10000010];
void init()
{
	int i,j;
	for(i=1;i<=10]]></description><category></category></item><item><title><![CDATA[17111 Football team]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/51059647</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/51059647</guid><author>gzdrn</author><pubDate>Mon, 04 Apr 2016 23:56:44 +0800</pubDate><description><![CDATA[Description
As every one known, a football team has 11 players . Now, there is a big problem in front of the Coach Liu. The final contest is getting closer. 
Who is the center defense, the full back ]]></description><category></category></item><item><title><![CDATA[POJ2251  Dungeon Master]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/50816205</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/50816205</guid><author>gzdrn</author><pubDate>Sun, 06 Mar 2016 23:31:38 +0800</pubDate><description><![CDATA[简单的搜索，多一个维度

#include
#include
int l,r,c;
int sx,sy,sz;
char a[31][31][31];
int book[31][31][31];
int xx[6]={1,-1,0,0,0,0};
int yy[6]={0,0,1,-1,0,0};
int zz[6]={0,0,0,0,1,-1};
struct note
{
	int x,y]]></description><category></category></item><item><title><![CDATA[区间dp模型（石子归并，括号匹配，整数划分）]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/50780292</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/50780292</guid><author>gzdrn</author><pubDate>Wed, 02 Mar 2016 15:25:04 +0800</pubDate><description><![CDATA[区间dp顾名思义就是在一个区间上进行的一系列动态规划。对一些经典的区间dp总结在这里。




1) 石子归并问题




题目链接：http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=737




描述： 有N堆石子排成一排，每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一]]></description><category></category></item><item><title><![CDATA[POJ3186Treats for the Cows]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/50780263</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/50780263</guid><author>gzdrn</author><pubDate>Wed, 02 Mar 2016 15:23:13 +0800</pubDate><description><![CDATA[题意


给长度为n的序列，每次只能从首或尾取一个数，第i次取的数权值为(数值*i)，求取完所有的数可以达到的最大权值。


思路


dp[i][j]表示左边取了i个数，右边取了j个数 
故 
dp[i][j] = max(dp[i-1][j] + a[i]* (i+j), dp[i][j-1] + a[n-j+1]*(i+j)); 
注意当ij为0的边界判断即可。
]]></description><category></category></item><item><title><![CDATA[POJ2533 Longest Ordered Subsequence]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/50776935</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/50776935</guid><author>gzdrn</author><pubDate>Wed, 02 Mar 2016 00:51:59 +0800</pubDate><description><![CDATA[大家都说是最基础的dp，但是还是搞了好久才AC，dp练得还是不够多
#include
int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		int a[10010];
		int dp[10010];
		int i,j;
		for(i=0;i<n;i++)
			scanf("%d",&a[i]);
		dp[0]=1;
		int md]]></description><category></category></item><item><title><![CDATA[HDU 2612 Find a way]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/50743075</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/50743075</guid><author>gzdrn</author><pubDate>Thu, 25 Feb 2016 23:55:15 +0800</pubDate><description><![CDATA[感觉还是不熟，忙了好久。


#include
#include
int n,m;
char map[205][205];
int a[205][205],b[205][205];
int book[205][205];
int x1,y1,x2,y2;
struct note
{
	int x,y;
	int s;
}que[100000];
int next[4][2]={{0,1},{]]></description><category></category></item><item><title><![CDATA[POJ 3278 Catch That Cow]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/50740025</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/50740025</guid><author>gzdrn</author><pubDate>Thu, 25 Feb 2016 19:36:10 +0800</pubDate><description><![CDATA[从可行性出发容易想到BFS,但是每种状态下有3种情况拓展（i-1,i+1,2*i）
数目有点大，因此需要剪枝
1.每个数最大取到k+1才有意义
2.每个数出现一次即可，因此可以用一下hash技术a[]数组
#include
int n,k;
struct note
{
	int num;
	int s;
}que[1000000];
int a[1000000];
void bfs(voi]]></description><category></category></item><item><title><![CDATA[HDU 1241 Oil Deposits（求子块个数）]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/50734859</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/50734859</guid><author>gzdrn</author><pubDate>Thu, 25 Feb 2016 01:28:42 +0800</pubDate><description><![CDATA[大意为@相邻的八个位置的@都为同一子块，求子块的个数。
依稀记得学过floodfill的方法求子块个数，但是忘了。。。
于是看了一下题解，发现可以遍历图时DFS实现计数
#include
#include
char a[101][101];
int book[101][101];
int m,n;
int movex[8]={1,1,1,-1,-1,-1,0,0},movey[8]={1,0]]></description><category></category></item><item><title><![CDATA[poj3984迷宫问题]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/50727345</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/50727345</guid><author>gzdrn</author><pubDate>Wed, 24 Feb 2016 00:41:50 +0800</pubDate><description><![CDATA[Description

定义一个二维数组： 

int maze[5][5] = {

	0, 1, 0, 0, 0,

	0, 1, 0, 1, 0,

	0, 0, 0, 0, 0,

	0, 1, 1, 1, 0,

	0, 0, 0, 1, 0,

};

它表示一个迷宫，其中的1表示墙壁，0表示可以走的路，只能横着走或竖着走，不能斜着走，要求编程序找出从左上角到右下角的最短]]></description><category></category></item><item><title><![CDATA[poj1426 Find The Multiple]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/50726501</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/50726501</guid><author>gzdrn</author><pubDate>Tue, 23 Feb 2016 22:20:54 +0800</pubDate><description><![CDATA[Find The Multiple




Time Limit: 1000MS


Memory Limit: 10000K


Total Submissions: 24082


Accepted: 9981


Special Judge




Description

Given a positive integer n, write a]]></description><category></category></item><item><title><![CDATA[17996 Daily Cool Run]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/50726388</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/50726388</guid><author>gzdrn</author><pubDate>Tue, 23 Feb 2016 22:00:03 +0800</pubDate><description><![CDATA[17996 Daily Cool Run


时间限制:1000MS  内存限制:65535K
提交次数:0 通过次数:0

题型: 编程题   语言: 不限定




Description



Daily Cool Run is a popular game, and Xdp enjoys playing the game recently. 
While pl]]></description><category></category></item><item><title><![CDATA[Codeforces 629B Far Relative’s Problem(简单区间贪心)]]></title><link>https://blog.youkuaiyun.com/gzdrn/article/details/50711363</link><guid>https://blog.youkuaiyun.com/gzdrn/article/details/50711363</guid><author>gzdrn</author><pubDate>Sun, 21 Feb 2016 23:56:32 +0800</pubDate><description><![CDATA[B. Far Relative’s Problem


time limit per test
 2 seconds


memory limit per test
 256 megabytes


input
 standard input


output
 standard output

Famil Door wants to celebrate his]]></description><category></category></item></channel></rss>