自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白学病患者的专栏

失败并不可怕,可怕的是你还相信这句话。

  • 博客(70)
  • 资源 (5)
  • 收藏
  • 关注

转载 动态规划最优化原理与无后效性

原文地址:http://www.jzsyz.jzedu.cn/xxjs/Suanfa/dtguihua/index.htm上面已经介绍了动态规划模型的基本组成,现在需要解决的问题是:什么样的“多阶段决策问题”才可以采用动态规划的方法求解?    一般来说,能够采用动态规划方法求解的问题必须满足.最优化原理和.无后效性原则。(1)动态规划的最优化原理。作为整个过程的最优策略具有如下性

2015-03-31 22:07:42 2753

原创 codeforces 4D Mysterious Present

题意:n个信封,第i个信封宽w[i],高h[i],现有宽为w,高为h的卡片,求满足下面条件的信封序列:1、宽、高大于卡片的宽、高2、序列中第i个信封宽、高严格小于第i+1个信封的宽、高分析:对于条件1,可以在输入时就把满足条件的信封记录下来;对于条件2,对满足条件1的信封按照宽由小到大排序。因为宽已经按照由小到大排序了,于是只需高度满足后者大于前者即可,所以对排好序的信封的

2015-03-31 20:15:45 703

原创 codeforces 3C Tic-tac-toe (想法题)

题意:三连棋游戏,给出棋盘上的情况,判断是否合法,若合法,判断谁获胜或者当前该谁下。(先手为X,后手为0,是数字0不是字母O!) 此题需考虑全面。首先考虑不合法的情况,有如下4种:1、X的数量少于0的数量。2、X的数量-0的数量>1。3、X数量等于0的数量,而此时存在三个X相连(即先手获胜)。这是不可能的,因为先手下子之后,X的数量必然多于0的数量,不可能相等。4、X的

2015-03-31 12:32:30 733

原创 codeforces 9C

题目大意:给出数n(1分析:1位数:12位数:10、113位数:100、101、110、111……即有:k位数:a、bk+1位数:a*10,a*10+1,b*10,b*10+1。 #includeusing namespace std;int ans=0;void get(int x,int n){ if(x>n) return; +

2015-03-30 22:51:46 703

原创 codeforces 3B (贪心)

两种船,大小分别为1、2。现有一辆容量为v的卡车,给出n艘船类型,以及相应的价值,求最大装载价值以及所选的船只编号。 贪心策略:将大小为1、2的船分开来,按照价值从大到小排序。然后按价值由大到小,先装入大小为2的船直到装不下,再装大小为1的船。记录下此时大小为1、2的船个数n1,n2,以及总价值。然后把已装入的价值最小的大小为2的船拿出,换成两艘大小为1的价值高的船,看价值是否增加,若增加

2015-03-30 22:25:57 757

原创 SGU 120 Archipelago (向量旋转)

给出n正多边形的两个顶点坐标n1,n2,求其余顶点坐标。1、先求出中心坐标C。2、根据中心坐标C和初始的一个顶点,进行一定角度的旋转,依次求出其他顶点。对于1:由两点n1,n2(不妨设n2>n1)和中心可形成一个三角形,已知两点坐标,可求该三角形的一边长y以及其它两边与中心所形成的夹角a=2π/n*(n2-n1),另外两个角相等,设为B,亦可求矣。然后根据余弦定

2015-03-26 22:29:51 431

原创 hdu 5179 (DFS)

求区间[L,R]内的beautiful number的个数。求出不超过L、R的beautiful number的个数sum(L),sum(R),结果即为sum(R)-sum(L-1)对于一个数num,从低位开始构造,由1开始枚举。若num大于当前构造的数则继续递归,否则返回结果。#include#include#include#include#include#incl

2015-03-26 16:00:44 427

原创 hdu 5178 pairs (二分)

求序列x中满足a排序后二分查找每个数加上k后的上界pos,结果累加pos-i即可#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define LL __int64int x[100005];int mai

2015-03-26 15:58:34 545

原创 SGU 119 Magic Pairs

已知N、A0、B0,对于给定X、Y,若A0X+B0Y能被N整除,则AX+BY也能被N整除,求所有的A、B。(0 A0X+B0Y、AX+BY均能被N整除,则显然A=k*A0,B=k*B0,0#include#includeusing namespace std;struct P{ int A,B;}p[10001];bool cmp(P x,P y){ re

2015-03-26 13:00:55 576

原创 hdu 5171(矩阵快速幂)

一个序列a,k次操作,每次把其中两个数的和相加后得到的新数添加到序列中,问最后得到的序列的和的最大值。 设最大的两个数为a[n],a[n-1],所有数的和为s[n],可得转移矩阵:(a[n],a[n-1],s[n])=(a[n-1],a[n-2],s[n-1])*(1 1 1)                                                       

2015-03-26 10:33:08 472

原创 514E (矩阵快速幂+DP)

一棵树,每个结点有n个儿子,该第i个儿子到父节点的距离为d[i],问离根节点距离不超过x的结点有多少个,结果对1e9+7取模。之前写的了,忘记是参考哪个大牛的博客了:以下是他的分析 首先注意到每个di  * 用dp[i]表示到根节点长度为i的点的个数, 那么不难发现状态转移方程  * dp[x] = dp[x - 1]*t[1] + dp[x - 2]*t[2] + ... +

2015-03-26 10:27:09 437

原创 18D (贪心)

题:http://codeforces.com/problemset/problem/18/D对于每个顾客,若之前存在其要求的x,将其记录下来。然后将记录下来的x进行排序,取最大的,因为2^x>2^(x-1)+2^(x-2)+…… import java.math.*;import java.util.*;public class Main { static clas

2015-03-26 10:14:56 337

原创 514D (二分+区间最值)

题目传送题目大意:n*m的矩阵,最多可进行k次操作,每次使得一列上的所有数值-1,若一行的数值全变为0,则该行被破坏。问最长可连续破坏多少行。输出此时对于每一列的操作数。思路很直接:对于每一列,二分区间长度,枚举起点,求区间最大值。将每一列的区间最值相加,若不超过k,则该长度可行。对于输出方案,可开设数组a[i]记录长度为i的起点,若最终长度为len,则再次求区间[a[len],a

2015-03-26 10:10:23 552

原创 518E (贪心)

给一个拥有n个元素、可能含“?”的序列,通过构造使得所有数的绝对值之和最小,同时使得序列的连续的k项之和是严格递增的。题目传送门要满足连续K项和递增,即a[1]+a[2]+……+a[k]只需:a[1]          a[2]          ……       一开始想到的是枚举起点从1到n-k+1,终点到n。统计出现?的次数,每当出现一个非?的数时,求出之

2015-03-26 10:07:49 405

原创 204A (数学题或者数位DP?)

求区间[l,r]内最高位数字与个位数字相等的数的个数。 数位DP?其实只需求出不超过x的满足要求的数的个数sum(x),最后答案就是sum(r)-sum(l-1)对于x,若小于10,则sum(x)=x.若x不小于10,取x的最高位a,最低位b。可以发现如果a否则结果为上式再减1(因为a……a不能取) #includeusing namespace std;#

2015-03-26 10:06:14 434

原创 225C (DP)

225C一个n*m的图形,含有黑白像素。最少需要改变其中多少个像素使其每一列的像素颜色相同。且连续的颜色相同的像素带的宽度均在区间[x,y]之间。对于每一列,显然,要么把白色都改变为黑色,要么把黑色都变为白色。先统计每一列的黑白像素的数量,由于每一列的像素数量是确定的,为n,故只需统计每一列的白色像素数量即可。亦可统计其前i列的白色像素数量。这里设num[i]表示前i列的白色像素数

2015-03-26 10:01:46 352

原创 166E(DP)

一个顶点分别为A、B、C、D的四面体。每一步可从一个顶点走到另一个顶点,问从D出发经过n步回到D的方法数。设dp[i]表示走i步回到D的方法数。每走一步共3种可能,走n步共3^n种情况,用总的方法数减去走n-1步回到D的方法数,即为走n步回到D的方法数。即dp[n]=3^n-dp[n-1] #includeusing namespace std;#define MOD 10

2015-03-26 10:00:26 480

原创 189A (DP)

一条绳子长度为n,可截长度为a1或a2或a3。问最多截成多少段。裸的完全背包问题。#includeusing namespace std;int dp[4005];int main(){ int i,j,n,a[5]; cin>>n>>a[1]>>a[2]>>a[3]; for(i=1;i<=n;++i) dp[i]=-0x3f3f3f3f; for

2015-03-26 10:00:15 373

原创 264B (DP)

给一个递增的序列,求相邻元素不互质最长子序列的长度设dp[i]表示当前最后一位中含因子i的最长长度,则每输入一个数,找到它所有因子,更新维护数组dp即可,这样可避免求gcd#includeusing namespace std;#define maxn 100005vector m[maxn]; //m[i]存放数i含有的因子。int dp[maxn];//当前数中含

2015-03-26 09:56:48 460

原创 194B(LCM)

从n*n的一个正方形左下角开始沿着边顺时针走,每走n+1个单位画一个叉叉。当走到已经画叉的位置停止,问此时共画了多少个叉。、首先停止时走的总距离一定是4n的倍数,因为可以看做是从停止处出发又回到停止的位置,设走了p圈停止,则总距离为p*4*n,又设画了k个叉叉,则总距离又可表示为(k-1)*(n+1)。即有p*4*n=(k-1)*(n+1)。故只需求4*n与n+1的最小公倍数lcm(4n,

2015-03-26 09:55:59 429

原创 343A(gcd)

有阻值为1欧姆的电阻。问最少使用多少个这样的电阻通过串并联得到阻值为a/b的电阻。1、若a%b==0,则只需a/b个电阻。否则2、若a>b,设k=a/b的整数部分。则可通过串联k个电阻,使问题转化为得到阻值(a-k*b)/b,即(a%b)/b3、若a具体处理时,对于第三种情况只需交换a、b的值即可转变为第二种情况。上述过程其实就是一个辗转相除的过程。修改一下欧几里得算法

2015-03-26 09:54:51 489

原创 509B、C(贪心)

B题: n堆石子,每堆有a[i]个石子,现用至多k种颜色将其染色,染色规则如下:任意两堆中颜色为c的石子个数相差不超过1思路:用尽可能少的颜色染色。如何保证最少?首先将石子数量最少的那一堆全染色1,其他堆与其相同数量+1的石子也染成1,再看石子数量第二少的,依次下去。 #includeusing namespace std;struct P{ int colo

2015-03-26 09:48:32 373

原创 508D (欧拉路)

题目大意:n个长度为3的串,串abc,def能够连接在一起当且仅当b=d,c=e。问能否将这n个串拼接得到长度为n+2的串。可将每一个串视为一条边,前两个字符与后两个字符分别为顶点。则问题转化为有向图中求欧拉路。注意由于可能会出现重边以及环,用邻接矩阵存储时,每出现一条边,数量加1,遍历删边的时候减1即可欧拉回路、欧拉路存在的判定:1、欧拉路:

2015-03-26 09:47:40 394

原创 508B、C、E(贪心)

B、给一个奇数,要通过交换任意两个数,将它变成可得到的最大的偶数。奇数变偶数,显然只要把个位与其他位上任意一个偶数交换即可,要保证最大,则判断个位数是否大于当前位的偶数,若大于则交换即可,若个位数比其他各个位上的偶数都要小,则将它与最低位的偶数交换,这样可以保证最大。#includeusing namespace std; char n[100005];int main()

2015-03-26 09:43:29 447

原创 507E (Dijkstra+优先队列)

// 给无向简单连通图的m条边,求从顶点1到顶点n的最短路,同时使得最短路径中标记为0的边数与不在最短路径中标记为1的边数之和最小,输出这些边。//可以设边权为1,使用优先队列,当前路径长度小的优先,路径长度相等时,最短路径中标记为0的边少的优先。 #includeusing namespace std;#define maxn 100005struct Edge{

2015-03-26 09:41:44 316

原创 507D (数位DP)

/*求后缀中(大于0)存在能被k整除的n位数的个数从低位向高位按位DPdp[0][i][j] 后缀均不能被k整除、被k除余j、位数为i的数的个数dp[1][i][j] 存在能整除k的后缀、被k除余j、位数为i的数的个数*/#includeusing namespace std;typedef __int64 LL;LL dp[2][1002][102

2015-03-26 09:40:41 439

原创 507C (DFS)

//给一颗深度为H的满二叉树,从根节点开始,按照LRLRLR……的访问顺序依次访问结点,问访问到最后一层的第N个结点(出口)时,共访问了多少个结点。//分两种情况考虑://1、如果在第h层向左(右)走,而出口位于当前结点的右(左)子树时,需把当前结点的左(右)子树的所有结点全部访问才能访问其右(左)子树。//2、如果在第h层左(右)走,出口位于当前结点的左(右)子树,则问题转化为深

2015-03-26 09:39:10 717

原创 505C (DP)

//题意:30001个岛屿自西向东依次编号为0-30000,输入n个编号,表示该岛屿上有宝藏。//从编号为0处出发向东跳,第一次跳的距离为d。设上一次跳的距离为L(L>0),则当前跳的距离为L-1(L>1)或L或L+1//输出最多能拿的宝藏数目//以p[i]表示第i个岛屿的宝藏数目,dp[i][j]表示跳了距离j到第i个岛屿所获得的最多宝藏数,则状态转移方程为://    dp

2015-03-26 09:37:25 408

原创 poj 3237 tree

题意:一棵树n个节点,三种操作:1、改变一条边的权值。2、查询节点a到b的路径中的边的最大值。3、将a到b路径上所有边的权值变为其相反数。 第4道树链剖分。。剖分后,用线段树点更新实现操作1,即可,对于操作3,设区间内原最大值、最小值为a、b,则区间内的数都乘以-1之后,最大值、最小值变为:-b,-a。这里用线段树成段更新操作即可。注意的是使用lazy标记的时候,应当使用异或运算,否则

2015-03-25 14:57:52 321

原创 线段树成段更新

hdu 1698n个hook,每个初始化为1,m次操作,更新区间[x,y]的值为z,操作完毕后求所有hook之和。用g++超时。。。#includeusing namespace std;#define maxn 100000#define lson i<<1,l,m#define rson i<<1|1,m+1,rint sum[maxn<<2],col[ma

2015-03-24 21:23:53 409

原创 SGU 118 Digital Root

定义f(n)为n各位数字之和,如果n是个位数,则n的根是f(n),否则n的根为f(n)的根现在给出n个数Ai,求出A1*A2*…*AN + A1*A2*…*AN-1 + … + A1*A2 + A1 这个式子的根一个数的所有位数之和与这个数模9同余。根据同余定理即可证明:http://www.cnblogs.com/zhixingqiezhixing/archive/2012/04/03/

2015-03-24 19:52:07 400

原创 SGU 117 Counting

n个数,求其M次幂能够被k整除的数的个数。(n,k,m快速幂求解即可。或者可以将k和那n个数都分解质因数。如果某个数的所有质因数的个数都不小于k的相应的质因数个数,则该数可被k整除#include#includeusing namespace std;#define LL __int64int pow(int a,int b,int k){ int ans=1;

2015-03-24 19:04:30 421

原创 SGU 116 Index of super-prime

题意:素数序列2,3,5,7,……中,若其序号也为素数,则称之为超级素数。给出一个整数n(n 预处理打表筛出不超过10000的超级素数后,问题即为完全背包问题。可以参看http://blog.csdn.net/insistgogo/article/details/8579597设f[j]表示j最少能被表示成f[j]个超级素数之和。f[j]=min(f[j],f[j-sprime[i

2015-03-24 12:39:03 483

原创 SGU 115 Calendar

水题。直接模拟即可,或者可以用蔡勒公式:  #includeusing namespace std;int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int main(){ int d,m,i,s; scanf("%d%d",&d,&m); if(d12||d>day[m]) puts("Impo

2015-03-23 19:34:12 363

原创 Codeforces 509E

/*给一个字符串,统计元音字母AEIOUY在子串中出现的比例之和。用数组s来存储前缀和。即s[i]表示前i个字符中元音字母个数,这样可以方便统计区间[l,r]元音字母个数。设串总长为L则有:长度为1的子串中元音字母出现的个数之和为:ans[1]=s[L]长度为2:ans[2]=ans[1]+s[L-1]-s[1]长度为3:ans[3]=ans[2]+s[L-2]-s[2

2015-03-22 22:23:56 513

原创 Codeforces 197A Plate game

纯粹的想法题啊!!!一个面积为a*b的矩形,两个人轮流往里面摆放半径为r的圆,不能重叠,轮到谁不能摆放时,另一方就赢了。输出胜者。只有两种情况。。。。。。。当矩形较短边长小于圆直径时,第一个人无法放。后者获胜。当第一个人可以放时,其一定获胜。因为其为防止对手获胜,一定将圆放在矩形中心位置,其余没有被圆覆盖的区域是对称的。 若不能摆放,则先手胜。 若可以摆放,则必然存

2015-03-22 22:19:34 990

原创 Codeforces 519E

给出26个字母的值和一个字符串,求其子串中长度大于1且首尾字母相同且除首尾字母外字母的权值之和为0的个数。扫一遍字符串,记录当前字母的前缀和,如果之前字母和当前字母相同且前缀和也相同,则说明该字母与之前字母间的字母权值之和为0。#includeusing namespace std;#define LL __int64mapm[26];char s[100005];int m

2015-03-22 22:18:25 614

原创 SGU 110 Dungeon

题意:http://hi.baidu.com/hpfdf/item/4bc71df5cc9f3dc4a835a2a9纯粹的数学题。初始一看非常麻烦,但是仔细思考后,其实并不复杂。需要注意一些细节。1、用对称式的空间直线方程(一个点,一个空间向量)来表示入射光线,然后与球的方程联立方程组,求出比例系数t1,t2,再由系数求出直线与球的交点。需要注意的是:如果表示入射光线的点为起点的话,这

2015-03-22 16:38:38 432

原创 hdu 5191 Building Blocks

问题描述看完电影后,乐乐回家玩起了积木。他已经搭好了n堆积木,他想通过调整积木,使得其中有连续W堆积木具有相同的高度,同时他希望高度恰好为H。乐乐的积木都这了,也就是说不能添加新的积木,只能移动现有的积木。他可以把一个积木从一堆移动到另一堆或者新的一堆,但是不能移动到两堆之间。比如,一次移动之后,"3 2 3" 可以变成 "2 2 4" 或者 "3 2 2 1",但是不能变成

2015-03-22 09:37:56 541 1

原创 SGU 103 Traffic Lights (最短路)

题意:http://www.cnblogs.com/yylogo/archive/2011/06/05/SGU-103.html分析:比通常的最短路问题多了个限制条件,即每个路口的颜色必须相同时才能通过,否则需要等待。不难发现,路口的颜色是与当前已经花费的时间有关。于是可以构造一个函数,根据当前所用时间来计算某个路口的颜色,以及下一次变色所需时间。          利用该函数可以计算出当

2015-03-22 08:02:30 501

计算机网络课设-邮件客户端实现(含源码、报告)

开发平台:VC6.0 MFC 开发语言:C++ 内容:包含源程序和源代码以及相关报告。

2017-02-21

网络编程大作业(邮件客户端实现,含源码)

网络编程大作业(邮件客户端实现,含源码)

2017-02-21

计组课设(基于FPGA的CPU设计)

含数据通路图、状态转换图、相关文档、verilog源码以及测试代码

2015-09-08

用MFC开发的扫雷游戏程序(含源码)

仿制windows自带的扫雷程序。

2015-09-08

MFC开发的多功能高精度计算器(含源码

【版本说明】 1、增加运算符填写功能 2、增加进制转换功能(500位数有效) 3、增加数据统计功能 4、增加运算精度调节(仅针对除法和圆周率的计算) 5、增加单位转换功能 6、增加输入结果按钮,可将上一次运算结果作为数值输入 7、增加线性方程组求解功能 8、优化求圆周率的算法,可精确到9000位以上 9、修正了之前版本的一些bug 10、美化界面 【版权说明】 未经编写人员许可,任何单位及个人不得以任何方式或理由对该产品进行复制、修改、抄录、传播或与其它产品捆绑使用、销售。

2015-09-07

空空如也

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

TA关注的人

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