自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 问答 (8)
  • 收藏
  • 关注

转载 马尔科夫链

 在MCMC(一)蒙特卡罗方法中,我们讲到了如何用蒙特卡罗方法来随机模拟求解一些复杂的连续积分或者离散求和的方法,但是这个方法需要得到对应的概率分布的样本集,而想得到这样的样本集很困难。因此我们需要本篇讲到的马尔科夫链来帮忙。1.马尔科夫链概述    马尔科夫链定义本身比较简单,它假设某一时刻状态转移的概率只依赖于它的前一个状态。举个形象的比喻,假如每天的天气是一个状态的话,那个今天是不...

2019-04-09 20:20:34 935

转载 蒙特卡罗方法

蒙特卡罗方法引入    蒙特卡罗原来是一个赌场的名称,用它作为名字大概是因为蒙特卡罗方法是一种随机模拟的方法,这很像赌博场里面的扔骰子的过程。最早的蒙特卡罗方法都是为了求解一些不太好求解的求和或者积分问题。比如积分:θ=∫baf(x)dxθ=∫abf(x)dx    如果我们很难求解出f(x)f(x)的原函数,那么这个积分比较难求解。当然我们可以通过蒙特卡罗方法来模拟求解近似值。如何模...

2019-04-09 20:18:19 8958

转载 iteration 与 epoch

神经网络的神奇之处就在于权重是通过训练自动得出的。所谓训练,就是让神经网络在训练数据集上跑一遍,看看损失函数的值怎么样。如果损失函数的值足够小,小到符合我们的需求,那就说明神经网络拟合得很好了,训练大功告成了(实际上并非如此,因为仅仅知道拟合得很好并不够,我们还要知道神经网络是不是拟合得太好了,也就是过拟合。所以还需要用测试数据集来测试是否过拟合。不过这里就姑且就当训练完成了把。)反之,如果损失函...

2019-03-16 15:43:28 2102

原创 hdu 1016 Prime Ring Problem

#include#include#include#includeusing 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

2016-07-07 21:40:26 208

转载 POJ 1664 整数划分问题

整数划分问题是算法中的一个经典命题之一,有关这个问题的讲述在讲解到递归时基本都将涉及。所谓整数划分,是指把一个正整数n写成如下形式:       n=m1+m2+...+mi; (其中mi为正整数,并且1        如果{m1,m2,...,mi}中的最大值不超过m,即max(m1,m2,...,mi)       例如当n=4时,他有5个划分,{4},{3,1},{2,2},{2

2016-07-06 23:44:48 639 1

原创 2016"百度之星" - 资格赛(Astar Round1) 1004()

#include#include#include#include#includeusing namespace std;char a[100000];map num;//所有的字符串通过SORT的方法hash,然后计数,注意map的使用int main() { int n; scanf("%d",&n); //num.clear();

2016-05-16 00:21:16 262

转载 bell-manford判负环模板

#include#includeusing namespace std;#define MAX 0x3f3f3f3f#define N 1010int nodenum, edgenum, original; //点,边,起点typedef struct Edge //边{ int u, v; int cost;}Edge;Edge edge[N];int dis[N]

2016-04-12 19:02:34 253

原创 hdu 1856 More is better

并查集,但统计的是每一个集合的元素个数。因此,把每个元素的的个数放入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

2016-04-05 13:39:17 176

原创 17111 Football team

DescriptionAs 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

2016-04-04 23:56:44 280

原创 POJ2251 Dungeon Master

简单的搜索,多一个维度#include#includeint 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

2016-03-06 23:31:38 154

转载 区间dp模型(石子归并,括号匹配,整数划分)

区间dp顾名思义就是在一个区间上进行的一系列动态规划。对一些经典的区间dp总结在这里。1) 石子归并问题题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=737描述: 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一

2016-03-02 15:25:04 220

原创 POJ3186Treats for the Cows

题意给长度为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的边界判断即可。

2016-03-02 15:23:13 255

原创 POJ2533 Longest Ordered Subsequence

大家都说是最基础的dp,但是还是搞了好久才AC,dp练得还是不够多#includeint 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

2016-03-02 00:51:59 195

原创 HDU 2612 Find a way

感觉还是不熟,忙了好久。#include#includeint 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},{

2016-02-25 23:55:15 183

原创 POJ 3278 Catch That Cow

从可行性出发容易想到BFS,但是每种状态下有3种情况拓展(i-1,i+1,2*i)数目有点大,因此需要剪枝1.每个数最大取到k+1才有意义2.每个数出现一次即可,因此可以用一下hash技术a[]数组#includeint n,k;struct note{ int num; int s;}que[1000000];int a[1000000];void bfs(voi

2016-02-25 19:36:10 200

原创 HDU 1241 Oil Deposits(求子块个数)

大意为@相邻的八个位置的@都为同一子块,求子块的个数。依稀记得学过floodfill的方法求子块个数,但是忘了。。。于是看了一下题解,发现可以遍历图时DFS实现计数#include#includechar 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

2016-02-25 01:28:42 261

原创 poj3984迷宫问题

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表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短

2016-02-24 00:41:50 359

原创 poj1426 Find The Multiple

Find The MultipleTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 24082Accepted: 9981Special JudgeDescriptionGiven a positive integer n, write a

2016-02-23 22:20:54 223

原创 17996 Daily Cool Run

17996 Daily Cool Run时间限制:1000MS  内存限制:65535K提交次数:0 通过次数:0题型: 编程题   语言: 不限定DescriptionDaily Cool Run is a popular game, and Xdp enjoys playing the game recently. While pl

2016-02-23 22:00:03 261

原创 Codeforces 629B Far Relative’s Problem(简单区间贪心)

B. Far Relative’s Problemtime limit per test 2 secondsmemory limit per test 256 megabytesinput standard inputoutput standard outputFamil Door wants to celebrate his

2016-02-21 23:56:32 434

转载 LCS 最大公共序列算法

1、LCS 求最大子序列, 一个办法当然是穷举法了, 但是穷举法太耗时间了O(2^m*2^n), 基本没用.2、聪明的程序员想到了,一个用矩阵来查找的算法,就是把两个队列用整形矩阵表示, 相同的为1, 不同的为0, 然后求最大对角线,优化是优化了很多, 不过求最大对角线也不省心。3、聪明的程序员再次优化了算法,就是相同的不是用1表示, 而是数字叠加,这样再找最大对角线的时候,就比较

2016-02-16 00:55:46 277

转载 分享两种筛选质因数的方法

第一个:用于每次只能求出一个数的质因子,适用于题目中给的n的个数不是很多,但是n又特别大的;#includeint main(){ __int64 a[100],num,i,n; while(scanf("%I64d",&n)!=EOF) { num=0; for(i=2;i*i<=n;i++) { if(n%i=

2016-02-12 14:18:18 414

空空如也

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

TA关注的人

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