- 博客(15)
- 收藏
- 关注
转载 错位排列递推公式推导
全错位排列:即被著名数学家欧拉(Leonhard Euler,1707-1783)称为组合数论的一个妙题的“装错信封问题”。“装错信封问题”是由当时最有名的数学家约翰·伯努利(Johann Bernoulli,1667-1748)的儿子丹尼尔·伯努利(DanidBernoulli,1700-1782)提出来的,大意如下:一个人写了n封不同的信及相应的n个不同的信封,他把这n封信都装错了
2015-12-01 17:11:15 19581
原创 HDU1176 免费馅饼 经典DP
题目 地址http://acm.hdu.edu.cn/submit.php?pid=1176类似i数塔问题,从下往上找核心思想:dp[j][i]+=max(dp[j+1][i],dp[j+1][i-1],dp[j+1][i+1])完整代码#include #include #include #define maxn 100005int dp[maxn][11];i
2015-12-21 21:03:26 1056
原创 C语言申明1000000以上数组的方法
通常用两个办法解决这个问题:声明一个全局数组。就是在所有函数之外声明,如int a[1000000];就可以了。在需要的函数中用malloc函数动态申请内存,如int *pt=(int *)malloc(sizeof(int)*1000000);就可以了。用完后要用free(pt);释放所申请的内存空间。
2015-12-15 17:28:53 7565
转载 (hash)hdu 1496 Equations
//引用冬月之神的帖子,尊重原创,传送门EquationsTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 899 Accepted Submission(s): 356Problem Descrip
2015-12-15 17:24:26 401
原创 hdu 2602 bone_collector
#include //please use C++ compiler#define maxn 1005//obviously 0-1bagsint main(){ int T,n,V,i,j,dp[maxn],w[maxn],v[maxn]; scanf("%d",&T); while(T--) { memset(dp,0,sizeof(dp
2015-12-10 16:46:03 387
转载 C语言快排模板 qsort();函数应用
///////////////////快速排序模板/////////////转载编程学习笔记的博客,源地址请点击,感谢”编程学习笔记“博主的辛勤付出。//部分验证,推理得出。内容基本可靠!////////////////////对int/char/float/double整形数组的快排/////////////////////#include #include
2015-12-09 21:18:37 908
转载 HDU 1249 三角形
题目分析:当已经有k-1个三角形时,加入一个三角形,每一条边穿过k-1个三角形的其中一角,则已有的k-1个三角形的每一个角都被分成了k-1个,因为每加入一个三角形,原来已有的三角形的每一个角都会被多分成一份。而新加入的三角形的一角,被k-1个角中的每两个角分割出一个新三角形(共k-2个),加上角本身的大区域,所以一角被分成了k-1份。这时图中有k个三角形,每个三角形3个角,每个角被分成了k-1份,
2015-12-08 17:46:11 437
转载 对拍调试
做ACM题时如何确定自己算法是否正确,可以采用可靠的暴力算法与最优算法结果相对比的方法请看该帖http://m.blog.csdn.net/blog/churehill123/19647579
2015-12-05 23:24:30 418
原创 2015广东工业大学新生赛决赛 Problem I: Stubird说这是水题
//2015广东工业大学新生赛决赛//Problem I: Stubird说这是水题//思想很简单,只要有相同的数,就可以用同一竖直列来,不同的话就需要分别的两竖直列来表示#include #include int main(){ int T,i,j,m,n,a[205],b[205]; scanf("%d",&T); while(T--) {
2015-12-05 23:04:54 1586
原创 HDU 1215 求N的因子之和
首先是暴力破解优化,最先想到的#include #include int main(){ int n,m,i; scanf("%d",&n); while(n>0) { n--; scanf("%d",&m); int sum=1,t=sqrt(m);//暴力2-sqrt(m)所有数不会超时,1-m/2
2015-12-03 20:02:01 533
转载 HDU 1029 Ignatius and the Princess IV
/*多元素即在数列中出现次数多于n/2的元素 ————采用这个方法的前提我们很容易的看出来,在一个序列中如果去掉2个不同的元素,那么原序列中的多元素,在新的序列中还是多元素,因此我们只要按照序列依次扫描,先把t赋值给result,增加个计数器,cnt = 1;然后向右扫描,如果跟result相同,则cnt++,不同,那么cnt --,这个真是我们从上面那个结论里得出的,一旦cnt
2015-12-01 21:28:08 373
原创 HDU 5538 house building
就是求表面积,我是用侧面积+加上面积的方法4*方块数是总的侧面积,减去接触面就等于实际侧面积看代码#include #include int main(){ int squire,m,n,t,a[50][50]; scanf("%d",&t); while(t>0) { int i,j,topsum=0,sum=0;
2015-12-01 20:13:34 623
原创 hdu 1273 森林漫步
原题链接点击打开链接原理看到数据中的 (0找规律:因为 任意两块空地之间都有一条小径相通 ,所以每个空地度都是一样的 为n-1;二要形成一个环路需要一进一出两度,故 次数为(n-1)/2;#includeint main(){ int n; while(scanf("%d",&n),n!=0) printf("%d\n",(n-1)/2);
2015-12-01 19:00:55 493
原创 HDU 2048 数塔 动态规划
#include //#include int main(){ int i,j,m,n,a[101][101],dp[101][101]; scanf("%d",&m); while(m>0) { m--; scanf("%d",&n); for(i=0; i<n; i++) for(j=
2015-12-01 18:02:17 629
原创 素数筛选法之埃拉托色尼筛
埃拉托色尼筛选法下面求1-100的所有素数Codes 1:#include #include #define true 1#define false 0int main(){ int i,j,prime[101]; for(i=0; i<=100; i++) prime[i]=i; memset(prime,true,sizeof(pr
2015-12-01 17:07:26 781
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人