symons

___________每一天都是幸福的!!

  博客园  ::  :: 新随笔  ::  :: 订阅 订阅  :: 管理

2013年1月9日

摘要: 本题一共有2点关键,一个是求逆序数,一个是推算过程。我跟NotOnlySuccess方法都不同,我第一是用归并排序写的,第二是比较笨的方法,他的那种方法可以说就是我方法的总结版本,可是思想上来说我就实在是太笨蛋了!这题的数字是0-(n-1)的。那如果把第一个数字移到最后去,也得遍历一遍1-(n-1)的位置,那从遍历这个角度来看,顺序是无关的,所以说可以直接利用num[0]的值来直接求。于是乎有了缩减版本。cnt+=n-num[i]-num[i]-1;这个值就是从求出最初的逆序数变换出下一个的公式,很巧妙不是吗?思想的魅力。现在我发现我看什么都能学到什么,这种感觉真好,或者说是我太差劲了,什么都 阅读全文
posted @ 2013-01-09 22:25 symons 阅读(316) 评论(0) 推荐(0)

摘要: 这题,开始TLE,然后我就改变方法了,只用一次归并排序求逆序数,然后再推出其他的。937水过,显然不是好办法。。。 1 #include <stdio.h> 2 #define maxn 5050 3 int a[maxn]; 4 int b[maxn]; 5 int c[maxn]; 6 int num[maxn]; 7 int cnt; 8 void change(int n,int m) 9 {10 int i,j;11 for(i=0;i<n;++i)12 a[i]=num[i];13 for(i=0;i<m;++i)14 {15 ... 阅读全文
posted @ 2013-01-09 19:52 symons 阅读(127) 评论(0) 推荐(0)

摘要: 我知道了 while(~scanf("%d%d",&n,&m)) 等价于 while(scanf("%d%d",&n,&m)!=EOF)是等价的。而且以后用c语言输入时候的scanf("%c“,&c),这种要注意到回车空格神马的。 1 #include <stdio.h> 2 #include <algorithm> 3 #define lson l,m,rt<<1 4 #define rson m+1,r,rt<<1|1 5 #define maxn 88 阅读全文
posted @ 2013-01-09 15:05 symons 阅读(157) 评论(0) 推荐(0)

摘要: 代码出处:http://www.notonlysuccess.com/index.php/segment-tree-complete/这个是基础线段树,用树形数组实现的。实现,查询,建树,添加修改结点信息。 1 #include <stdio.h> 2 #define lson l,m,rt<<1 3 #define rson m+1,r,rt<<1|1 4 #define maxn 55555 5 int sum[maxn<<2]; 6 void PushUp(int rt) 7 { 8 sum[rt]=sum[rt<<1]+sum 阅读全文
posted @ 2013-01-09 13:27 symons 阅读(160) 评论(0) 推荐(0)