算法,入门
文章平均质量分 65
Hormous的一天
这个作者很懒,什么都没留下…
展开
-
迭代的相关经验
迭代的核心思想就是赋值,接力赋值。图例就是最为经典的迭代赋值求方程值。迭代一般包括赋值,赋值。原创 2017-10-21 09:12:10 · 297 阅读 · 0 评论 -
快速幂的认识
其中要理解base*=base这一步,看:::base*base==base^2,下一步再乘,就是base^2*base^2==base^4,然后同理 base^4*base4=base^8,,,,,see?是不是做到了base-->base^2-->base^4-->base^8-->base^16-->base^32.......指数正是 2^i 啊,再看上 面的例子,a¹¹= a^(转载 2017-11-06 15:37:06 · 122 阅读 · 0 评论 -
快速排列在c++中的使用
#include#include#includeusing namespace std;struct date{ int x; int y; int z;}three[50005];bool cmp(date a,date b){ if(a.x == b.x){ if(a.y == b.y)return a.z<b.z;原创 2017-11-07 15:15:09 · 176 阅读 · 0 评论 -
递推的专题竞赛
递推的推导错排公式编辑当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用D(n)表示,那么D(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法;第二步,放编号为k的元素,这时有两种情况:⑴把它放到位置n,那么,对于剩下的n-1个元素,由于第k个元素放到了位置n,剩下n-2个原创 2017-11-08 21:19:05 · 183 阅读 · 0 评论 -
RPG问题的妙解
/*Description人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即"可乐"),经过多方打探,某资深Cole终于知道了原因,原来,LELE最近研究起了著名的RPG难题:有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的转载 2017-11-09 18:44:50 · 376 阅读 · 0 评论 -
分治法的小感悟
#includeint max(int a,int b){ if (a > b)return a; else return b;}int sumMax(int *a,int left,int right)//分治法的核心思想这里全都有。{ if (left+1 >= right)return max(a[left],a[right]); //1.第一步进行判断原创 2017-11-10 09:03:09 · 422 阅读 · 0 评论 -
贪心算法初识——对今年暑假不AC问题的两种理解
目前的贪心算法,我接触的有两种。一今年暑假不Ac为例,我看到了两种算法。题目:点击打开链接首先,两种都是基于快速排列的: 按照节目时间结束的时间来从小到大来进行 排序的,如果结束的时间相等,那么就按照开始的 时间从大到小来排序。 因为结束的时间最早嘛,所消耗的时间也一定很少。 然后就进行排序,判断后一个的节目开始时,前一个节原创 2017-11-12 14:57:12 · 517 阅读 · 0 评论 -
错排。中的阶乘要注意不能超过20,不然longlong也救不了
#includeint main(){ int n,i; long long a[15]; a[1]=0; a[2]=1; for (i = 3;i < 15;i ++) a[i] = (i-1)*(a[i-1]+a[i-2]); scanf("%d",&n); while (n){ int m = n;原创 2017-11-12 21:09:54 · 916 阅读 · 0 评论 -
快速排列初识
快速排列的思想很牛逼这里应该有非常丰富的解释:点击打开链接//来一个快速排序。#includevoid sort (int *a,int left,int right){ if (left >= right){ //如果左边索引大于等于右边的索引就代表已经整理完成了一个组了 return; } int i = lef原创 2017-11-01 21:41:43 · 158 阅读 · 0 评论 -
快速幂的数列递推
#include int main(void){ __int64 a,n,ans,m,t,i; scanf("%I64d",&t); for (i=1;i<=t;i++) { //简单的组数 scanf("%I64d",&n); //n是一个数 m=n; //先把m储存起原创 2017-11-05 10:31:26 · 246 阅读 · 0 评论 -
冒泡函数 和 选择排序
#include using namespace std;int main(){ int a[10] = {9,8,7,6,5,4,3,2,1,0}; int temp; for (int i = 0;i < 10;i ++){ for (int j = 9;j > i;j --){ if (a[j] < a[j-1]){原创 2017-10-18 20:00:54 · 776 阅读 · 0 评论 -
插入排序,简单认识
#include void InsertionSort (int a[],int size){ for (int i = 1;i < size; i++){ //a[i]是最左的无序元素,每次循环将a[i]放到合适位置。 for (int j = 0;j < i; j++) if (a[j] > a[i]){ // 要把a原创 2017-11-21 15:31:35 · 121 阅读 · 0 评论