HDU1128 self number("优化"版暴力)
2012-04-20 23:33
162 查看
这题还是想了很长时间的!
刚开始的思路就是简单暴力,可是却TLE了!为啥呢?简单原因:举个例子来说明。把132当做generator来计算其的“后代”,要算多少下呢?这个问题将是
可否解决问题的关键。两种方式:①从132开始一直运算到“后代”是小于1000000的最大整数为止。模拟几个数:132、138、150、156、168......。这个算
发会超时,原因是基本计算次数达到10^8了。②其实只需计算132的直接“后代”即可!也即得到138不是self number。为啥?处理的一个数是否是self number
会从令i=1到i=1000000逐个计算,那么当i=132时可以得到138不是self number,关键当i增加到138时自然就会得到150不是sfle number了。可见,如果从132
和138一直向下计算就会大量重复计算!这就是TLE的原因了。
刚开始的思路就是简单暴力,可是却TLE了!为啥呢?简单原因:举个例子来说明。把132当做generator来计算其的“后代”,要算多少下呢?这个问题将是
可否解决问题的关键。两种方式:①从132开始一直运算到“后代”是小于1000000的最大整数为止。模拟几个数:132、138、150、156、168......。这个算
发会超时,原因是基本计算次数达到10^8了。②其实只需计算132的直接“后代”即可!也即得到138不是self number。为啥?处理的一个数是否是self number
会从令i=1到i=1000000逐个计算,那么当i=132时可以得到138不是self number,关键当i增加到138时自然就会得到150不是sfle number了。可见,如果从132
和138一直向下计算就会大量重复计算!这就是TLE的原因了。
#include<iostream> using namespace std; const int M=1000000; int main() { bool b[M+1]; int i,tem,sum; memset(b,0,sizeof(b)); for(i=1;i<=M;i++) { sum=i; tem=i; while(tem!=0) { sum+=tem%10; tem/=10; } if(sum<=M) b[sum]=1; } for(i=1;i<=M;i++) { if(b[i]==0) cout<<i<<endl; } return 0; }
相关文章推荐
- eclipse(优化三) eclipse开启后,关闭"Updating indexs"
- Oracle sql"NOT IN"语句优化,查询A表有、B表没有的数据
- 从三个方面进行讲解如何适当优化"SQL"
- eclipse(优化四) eclipse启动时,报"failed to create the java virtual machine"的解决方案
- CCSpriteBatchNode与"pvr.ccz","plist"精灵优化及注意事项
- C#提升性能"数据库连接打开与关闭"经验分享(附:优化过的DBHelper类) 之配餐系统的开发
- 【iOS-Cocos2d游戏开发之九】讲解CCSpriteBatchNode与TP工具的".pvr.ccz",".plist"共用的终极精灵优化及注意事项!
- 【iOS-Cocos2d游戏开发之九】讲解CCSpriteBatchNode与TP工具的".pvr.ccz",".plist"共用的终极精灵优化及注意事项!
- C语言优化-2(转贴"C程序员之终极标靶")
- "MySQL性能优化" - InfoQ & Baidu技术沙龙小记
- NHibernate SQL优化小技巧使用dynamic-insert="true" insert="true"
- 让所有"暴力删除工具"无语的代码
- C#提升性能"数据库连接打开与关闭"经验分享(附:优化过的DBHelper类) 之配餐系统的开发
- 【iOS-Cocos2d游戏开发之九】讲解CCSpriteBatchNode与TP工具的".pvr.ccz",".plist"共用的终极精灵优化及注意事项!
- C#提升性能"数据库连接打开与关闭"经验分享(附:优化过的DBHelper类) 之配餐系统的开发
- 【.Net码农】Asp.Net异常:"由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值"的解决方法
- eclipse(优化五) eclipse启动时,报"failed to load the JNI shared library"的解决方案
- 【Code Forces 320D】【贪心+暴力】 "Or" Game 数列乘k次x后求最大or值
- 1.1.24. volatile "可变" 除了程序,可能被环境修改,用于提示编译器取消一些优化措施,
- "CREATE TABLE AS SELECT"以及"INSERT INTO AS SELECT"语句的优化