2013年3月26日

摘要: 贪心算法一、基本概念:所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前状态有关。所以对所采用的贪心策略一定要仔细分析其是否满足无后效性。二、贪心算法的基本思路:1.建立数学模型来描述问题。2.把求解的问题分成若干个子问题。3.对每一子问题求解,得到子问题的局部最优解。4.把子问题的解局部最优解合成原来解问题的一 阅读全文
posted @ 2013-03-26 19:58 只差一个转身的距离 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 杭电ACM第1249题,关于N个三角形能把平面分成几块的问题。递推公式:t(1)=2t(n)=t(n-1)+6*(n-1)杭电1249代码如下:#include<stdio.h>#include<stdlib.h>int main(){ int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); long int a[10001]; a[1]=2; int i; for(i=2;i<=n;i++) { a[i]=a[i-1]+6*(i-1); } pr 阅读全文
posted @ 2013-03-26 19:39 只差一个转身的距离 阅读(151) 评论(0) 推荐(0) 编辑

2013年2月25日

摘要: #include "stdio.h"int main(){ long long n,m,t; while(scanf("%lld%lld",&n,&m)==2) { if(n>m) { t=n; n=m; m=t; } printf("%lld\n",m-n); } return 0;}这个long long long long的好啊,直接狂错 阅读全文
posted @ 2013-02-25 21:48 只差一个转身的距离 阅读(85) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>int main(){ long v,t; while(scanf("%ld%ld",&v,&t)==2) printf("%ld\n",2*v*t);return 0;}两个数相乘的2倍就ok了 阅读全文
posted @ 2013-02-25 21:44 只差一个转身的距离 阅读(79) 评论(0) 推荐(0) 编辑
摘要: #include"stdio.h"main(){ int n,i; double a,b; scanf("%d",&n); while(n--) {scanf("%lf%lf",&a,&b); if(a>b) printf(">\n"); else if(a==b) printf("=\n"); else if(a<b) printf("<\n"); } } 阅读全文
posted @ 2013-02-25 21:40 只差一个转身的距离 阅读(84) 评论(0) 推荐(0) 编辑
摘要: #include <stdio.h>#include <math.h>int main() { double n, p; while (scanf("%lf%lf", &n, &p) != EOF) { printf("%.lf\n", pow(p, 1/n)); } return 0;} 阅读全文
posted @ 2013-02-25 21:24 只差一个转身的距离 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 1 #include<stdio.h> 2 #include<stdlib.h> 3 int main() 4 { 5 long a[3],b[3],c[3],sum,n[6]={0},i,j,m; 6 while(scanf("%ld%ld%ld%ld%ld%ld%ld%ld%ld",&a[0],&a[1],&a[2],&b[0],&b[1],&b[2],&c[0],&c[1],&c[2])!=EOF) 7 {sum=a[0]+a[1]+a[2]+b[0]+b[1]+b[2]+ 阅读全文
posted @ 2013-02-25 21:19 只差一个转身的距离 阅读(186) 评论(0) 推荐(0) 编辑

导航