总结 Date 2017.09.23
来源:互联网 发布:雷锋的故事 知乎 编辑:程序博客网 时间:2024/06/03 15:14
总结 Date 2017.09.23
<1>统计数字
某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。
思路1:桶排序(但数字范围过大,舍)
思路2:自带排序函数(包含头文件#include< algorithm >)
具体代码:
sort(a,a+n); int k = 0; for(int i = 0;i<n;i++) { b[k][1] = a[i]; if(a[i] == a[i+1]) { b[k][0]++; }else{ k++; } }
Sort函数的用法:
bool compare(int a,int b)
{
return a>b; // return 0 即 交换
}
sort(a,a+n,compare);
<2>蜜蜂路线
一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你:蜜蜂从蜂房M开始爬到蜂房N,M小于N,有多少种爬行路线?
思路1:将路线转换为二维地图,两个数组表示前进方式,用搜索回溯算法(果断超时)
思路2:总结出递推式(赤裸裸的斐波那契数列),然后,果断超过long long 类型最大值,考虑高精度。
1 — 3 — 5 — 7………………
—2 —4 — 6………………
具体如下
int k1 = 500;b[500] = 1,c[500] = 0;for(int i = 500;i>=500-(n-m)+1;i--){ for(int j = 500;j>=k1;j--) { a[j] = b[j] + c[j]; } for(int j = 500;j>=k1;j--) { if(a[j] >= 10) { a[j-1] += a[j]/10; a[j] %= 10; if(j == k1) { k1--; j = 0; } } } for(int i = k1;i<=500;i++) { c[i] = b[i]; } for(int i = k1;i<=500;i++) { b[i] = a[i]; }}
<3>Hanoi双塔问题
给定A、B、C三根足够长的细柱,在A柱上放有2n个中间有孔的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形)。现要将这些圆盘移到C柱上,在移动过程中可放在B柱上暂存。要求:
(1)每次只能移动一个圆盘;
(2)A、B、C三根细柱上的圆盘都要保持上小下大的顺序;
任务:设An为2n个圆盘完成上述任务所需的最少移动次数,对于输入的n,输出An。
思路1:还是公式,赤裸裸 2*(2^n-1),考虑高精度。
思路2:递归算法,很明显的递归,开冰箱放大象嘛(肯定超过数据类型的最大范围了)
具体如下:
a[300] = 1; int k = 300; for(int i = 1;i<=n+1;i++) { for(int j = k;j<=300;j++) { a[j]*=2; if(a[j] >= 10) { if(j == k) { k--; } a[j-1] += a[j]/10; a[j] %= 10; } } }
递归版:
void hannuota(int n) { if(n==1) { sum++; } else{ hannuota(n-1); sum++; hannuota(n-1); }}
终于,总结完了。
- 总结 Date 2017.09.23
- date总结
- java Date总结
- java Date总结
- java Date总结
- java Date总结
- JAVA DATE总结
- java Date总结
- 主题:JAVA DATE总结
- Date类学习总结
- 主题:JAVA DATE总结
- JAVA DATE总结
- Date/Time函数总结
- JAVA Date总结
- Date类学习总结
- java Date学习总结
- JAVA DATE总结
- date命令的总结
- stl set讲解
- u启动盘制作
- 成对使用new和delete时要采取相同形式
- leetcode--169.Major Element
- ConcurrentHashMap分析
- 总结 Date 2017.09.23
- java开发C语言编译器:消除冗余语句和把ifelse控制语句编译成字节码
- 微软面经
- 数字货币开发共识机制与分布式一致性算法
- 李开复:多次失败后,我总结出最优秀创业者的4个特点
- 外资撤离,为什么人民币会贬值,汇率下跌-货币总量和货币风险双重影响
- 异常处理try/raise/assert/with
- JAVA数据库连接池简介与使用(C3P0,Druid,JNDI ,DBCP,Proxool,BoneCP)
- Django后台ManyToManyField显示成Object