时间优化的算法题
2012-12-05 19:33
267 查看
POJ
2236
我在poj上2236测试了很多实例,显示:
在输入输出上:用scanf,printf代替cin,cout可以大大加快时间,尤其对于输入、输出频繁的测试
1014
是一道动态规划的题目,但是可能超时,需要剪枝,搜索现在还是低级之低级,就不试了
#include <iostream>
using namespace std;
int a[60001],num[6],sum;
bool dp()
{
sum/=2;
int mmax=0;
a[0]=1;
for(int i=6;i>0;i--)
{
for(int j=mmax;j>=0;j--)
{
if(a[j]==0)
continue;
for(int k=1;k<=num[i-1];k++)
{
if(j+k*i>sum||a[j+k*i] ) //开始没加||a[j+k*i] ,300ms,加了后0,以后记得动态规划的剪枝
break;
else if(j+k*i==sum)
return true;
else if(j+k*i>mmax)
mmax=j+k*i;
a[j+k*i]=1;
}
}
}
return false;
}
int main()
{
int flag,i,cs=0;
while(1)
{
memset(a,0,sizeof(a));
sum=0;
for(i=0;i<6;i++){
scanf("%d",&num[i]);
sum+=(i+1)*num[i];
}
if(sum==0)
break;
if(sum%2||dp()==false )
{
printf("Collection #%d:\nCan't be divided.\n\n",++cs);
continue;
}
printf("Collection #%d:\nCan be divided.\n\n",++cs);
}
system("pause");
return 0;
}
1742 与上题类似的解法,可惜耗时较大,但从大到小排序了后似乎有点改良
http://acm.pku.edu.cn/JudgeOnline/status?problem_id=1742&user_id=tanzhangwen&result=0&language=
2236
我在poj上2236测试了很多实例,显示:
在输入输出上:用scanf,printf代替cin,cout可以大大加快时间,尤其对于输入、输出频繁的测试
1014
是一道动态规划的题目,但是可能超时,需要剪枝,搜索现在还是低级之低级,就不试了
#include <iostream>
using namespace std;
int a[60001],num[6],sum;
bool dp()
{
sum/=2;
int mmax=0;
a[0]=1;
for(int i=6;i>0;i--)
{
for(int j=mmax;j>=0;j--)
{
if(a[j]==0)
continue;
for(int k=1;k<=num[i-1];k++)
{
if(j+k*i>sum||a[j+k*i] ) //开始没加||a[j+k*i] ,300ms,加了后0,以后记得动态规划的剪枝
break;
else if(j+k*i==sum)
return true;
else if(j+k*i>mmax)
mmax=j+k*i;
a[j+k*i]=1;
}
}
}
return false;
}
int main()
{
int flag,i,cs=0;
while(1)
{
memset(a,0,sizeof(a));
sum=0;
for(i=0;i<6;i++){
scanf("%d",&num[i]);
sum+=(i+1)*num[i];
}
if(sum==0)
break;
if(sum%2||dp()==false )
{
printf("Collection #%d:\nCan't be divided.\n\n",++cs);
continue;
}
printf("Collection #%d:\nCan be divided.\n\n",++cs);
}
system("pause");
return 0;
}
1742 与上题类似的解法,可惜耗时较大,但从大到小排序了后似乎有点改良
http://acm.pku.edu.cn/JudgeOnline/status?problem_id=1742&user_id=tanzhangwen&result=0&language=
相关文章推荐
- 如何用O(n)时间复杂度查找第k大数的优化算法 C++程序
- 继续优化,使用AC算法,时间控制在1秒内
- 【最大团转最大点独立集(匈牙利算法+时间戳优化)】BZOJ2744-[HEOI2012]朋友圈
- SQL性能优化中的底层概念,时间复杂度,算法和数据结构,数据库组成,查询优化和表关联原理.
- 算法细节系列(27):时间复杂度为何还能优化?
- 对经典算法百鸡百钱问题的优化解决,使其时间复杂度为n。
- 最基本的百度算法秘密,了解后减少一个月的优化时间!
- 【算法竞赛入门经典】集合的动态规划;时间优化 例题9-16 UVa1252
- bzoj2744 [HEOI2012]朋友圈 ( 二分图最大团转补图最大独立集+时间戳优化+匈牙利算法)
- SSE图像算法优化系列九:灵活运用SIMD指令16倍提升Sobel边缘检测的速度(4000*3000的24位图像时间由480ms降低到30ms)。
- 强大的随机算法-简洁的O(n)时间复杂度解决查找第k大数问题优化算法
- C++解决最大子列和问题,算法时间复杂度优化
- Sat问题——穷举(这里读文件时间很浪费,最初写的,可以进行很多优化,其他优化算法目前不能发布)
- 求解最短路径Bellman_Ford 算法优化版——结合队列
- 优化开机过程中的内核空闲时间
- hadoop参数优化,Mapreduce程序优化,减少运算时间
- openCV中测试算法时间复杂度
- 初学算法-快速排序与线性时间选择(Deterministic Selection)的C++实现
- s数据结构,算法,算法时间复杂度
- 高斯模糊算法的全面优化过程分享。