摘要:
斐波那契数列 代码当然是非常简单的。 最令我满意的是核心循环的“循环头”。 它使得程序尽最大努力不做不必要操作。 当然,它也恰如其分的满足了这种多组输入输出的需要。 1 #include<iostream> 2 using namespace std; 3 4 const int N=1e6+5; 阅读全文
摘要:
过河卒 下面是常规的代码,过当然是不能过的。 之所以放上来是因为它好歹也是个看的过去的常规搜索递归程序(可惜没找到改成尾递归的方法o(╥﹏╥)o) 1 #include<iostream> 2 using namespace std; 3 int n,m,ans,x[9],y[9]; 4 5 boo 阅读全文
摘要:
位数问题 递推写着写着,然后,动态规划的味道越来越浓了! 1 #include<iostream> 2 using namespace std; 3 const int N=1005; 4 int main(){ 5 int n,f[N][2]; 6 cin>>n; 7 f[1][0]=9,f[1] 阅读全文
摘要:
昆虫繁殖 下面的代码是标准答案,但笔者窃以为它“并不正确”! 举个例子来说吧 令x=3,y=1,z=9 第x天 1 2 3 4 5 6 7 8 9 成虫数 1 1 1 1 1 2 2 2 3 卵虫数 0 0 0 1 1 0 1 1 (2)1 推导后可以知道第九天卵虫数为1对,但如果按照下面代码中的算 阅读全文
摘要:
对基本的简单选择排序进行了优化。 详情可参考 排序系列 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 5 const int N=105; 6 7 int main(){ 8 int n,k,num[N]; 9 do 阅读全文
摘要:
谁考了第k名 注意: 需要稳定排序算法 下面的代码窃以为更适合这题,但是不能过。 因为快速排序并不是稳定的算法。 21.8.11更新:错误的真正原因:快速排序优化方案的否定。 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 阅读全文
摘要:
明明的随机数 其实质就是将数组下标作为“桶”的标识 1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 5 const int N=1005; 6 7 int main(){ 8 int a[N],v,cnt=0; 9 阅读全文
摘要:
求逆序对 本着别人听懂了自己才算会的原则,今天就在这里丢人现眼一回(灬ꈍ ꈍ灬)。 题意要求找出所有的逆序对。 首先就要明确两点: 仅仅对其进行排序然后记录执行次数是于事无补的。 暴力数的话时间复杂度是一定通不过的。 解决方案: 将注意力聚焦到归并排序上(也可参考 排序系列 )。 归并排序的特点== 阅读全文
摘要:
车厢重组 对基本冒泡排序进行了优化(具体体现在exchange、bound) 详情可参考我的一篇csdn博客--》排序系列 1 #include<iostream> 2 #include<cstring> 3 4 using namespace std; 5 const int N=10005; 6 阅读全文
摘要:
回文数 思路还是很清晰的: 接收输入 构造相加(倒序相加)(个人是按照大整数加法的规格来的) 对结果判断是否为回文数(单独写一个函数进行回文判断isPalindrome) 循环二、三步 打印输出 这里重点说几个注意点(本人犯的错,拿出来给大伙乐呵乐呵): 输入可以是16进制,即输入有可能含有正确的字 阅读全文