自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (4)
  • 收藏
  • 关注

原创 Problem B (Max Sum Plus Plus) (dp问题)

题意:给你一组数,要你将其分成m个不相交的子段的最大值。 先说下动态转移方程:dp[i][j]表示前j个数(包括j)分成i份的最大值。(至于为什么要这样设计我们以后当面聊。) 那么容易得到动态转移方程如下:   dp[i][j]= max { dp[i][j-1]+s[j]  (当s[j]不是第i份的第一个数时)                dp[i-1][j-1]+s[j] (当s[j

2012-06-24 17:05:01 1021

原创 Problem G --square (dfs+剪枝)

题意是给你一堆棍子。问你可不可以将他们组成正方形也就是可不可以平分成4份。 用dfs,值得注意的是此题的剪枝问题,直接上代码,看注释吧。 #include #include #include int s[25],sum,flag,n; bool visit[25]; int cmp(const void *a,const void *b) { return *(int *

2012-06-24 16:19:50 412

原创 Ignatius and the Princess III (递推)

整数划分问题是一个经典的递归问题。 dp[n][m]表示 整数n的m划分为 n=x1+x2+x3+...+x;其中xi的最大值小于等于m; 那么我们讨论一下怎么把问题转换为其子问题; 1、当m=1或者n=1 时 显然dp[n][m]=1; 2、当n 3、当n=m时 分两种情况考虑  3.1、当划分的数中包含m时,dp[n][m]=1; 3.2、当划分的数不包含m时,问题转换为整数n的

2012-06-19 20:46:14 356

原创 hdu Big Number

思路1:N!除以10^(k-1)(k为N!的位数)等于一个介于1 和10 之间的小数 那么就转换成求K。那么在阶乘的过程中超过了10就将结果除以10,k就等于除10的次数加1。 #include int main() { int T,n,ans,i; double x; scanf("%d",&T); while(T--) { scanf("%d",&n); x=1

2012-06-10 13:17:39 300

原创 hdu 钱币兑换问题(母函数)

模拟多项式乘法 #include #include #define N 32767 int c1[N],c2[N]; void Mu() { int i,j,k; for(i=0;i<=N;i++) { c1[i]=1; c2[i]=0; } for(i=2;i<=3;i++) { for(j=

2012-06-10 12:42:09 330

原创 关于完全背包问题用二进制优化的可行性证明

完全背包用 二进制 优化 的可行性怎么证明。 问题简化一下:  10个1 它可行的组合数 是1至10 将10 分解为 1 + 2 + 4 +3 怎么证明用 1 2 3 4  同样可以组合为 1至10 这十个数呢? 在二进制优化的时候相当于分成了两部分,一部分是1、2、4、这样是2的幂,不妨记作一共有n个,还有一个是剩余的部分不妨记作x。 接着我们考虑对于构造体积为V的物体。

2012-06-09 21:34:15 1799 1

原创 hdu 找新朋友 (欧拉定理)

集合[1,N]中与N互质的数的总数目。 欧拉定理(证明过程就免了): n=P1^k1*P2^k2*.....Pr^kr(P是质数) f(n)=P1^(k1-1)*(P1-1)  *  P2^(k2-1)*(P2-1)....Pr^(kr-1)*(Pr-1); #include int euler(int x) { int result=1; int i; for(i=2;i*i<=

2012-06-09 20:36:34 1266

原创 hdu 1249 三角形

欧拉定理:面=边+2-点; 边:b[i]=b[i-1]+(4*i-3)*3; 点:d[i]=d[i-1]+(2*i-1)*3; 两个都是等差数列,可以化简后直接套公式,也可以直接递推; 这里直接递推:#include #include #define maxn 10005 __int64 d[maxn],b[maxn]; void solve() { __int64 i; mems

2012-06-08 12:16:36 281

原创 hdu Employment Planning (dp)

由于题目中未说明工人人数的数据范围,于是用dp先尝试了一下; dp[i][j]表示前i个月(包括i)请j个人所花费的最少费用; 那么动态转移方程为: 当k dp[i][j]=min(dp[i-1][k]+(j-k)*h+j*s,dp[i][j]); 当k>j时 dp[i][j]=min(dp[i-1][k]+(k-j)*f+j*s,dp[i][j]); 其中h为雇佣工人的花费,s

2012-06-07 21:10:11 263

转载 hdu 1271 整数对

看完题,没啥思路。 网上的大牛讲解如下:            假设删掉第k位为数字B,前面的数字段为A,后面的数字段为C,则有:   n=A*10^(k+1) + B*10^k + c   m=A*10^k + c  N=n+m=(11A+B)*10^k + 2c     有:A=N/10^k/11,B可能被2c进位,故分为两种情况: 1.     B=N/10^k – 11A

2012-06-06 21:52:35 288

原创 B题

今天做Astar,一个悲剧! 发现自己弱爆了! 两个小时,对于B题 思路很清晰,代码却写的不堪入目的!!! 我只能对自己说,小子你太菜了,还有的练啊,可是acm留给我的时间却不多了! 我只能抓紧时间提升自己,不给自己的acm留下太多遗憾。。。 下面是我B题的代码:写的太烂太烂,贴在这时时警醒自己! //ceil(x)返回不小于x的最小整数值(然后转换为double型)。 //floor

2012-06-02 12:17:59 705

百度地图定位项目源码

一个手机端的app,可以参考一下百度地图api的使用。服务器端的代码没有在里边。

2015-07-27

sqlserver2005_JDBC驱动包

sqlserver2005_JDBC驱动包

2012-04-16

湖南省第六届大学生计算机程序设计竞赛试题及标程

湖南省第六届大学生计算机程序设计竞赛试题及标程

2012-04-16

优先队列

优先队列

2011-10-26

空空如也

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

TA关注的人

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