symons

___________每一天都是幸福的!!

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

2013年1月16日

摘要: 来源:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1603这题输入就是:1+21+3+2+53输出3113就是相当于一个简单的加减法计算器,输入输出保证符合规则。要是我原来肯定用笨拙的字符串处理来写,现在我不那么写了。很easy的写法。 1 #include <stdio.h> 2 int main() 3 { 4 int res,temp; 5 char c; 6 while(~scanf("%d",&temp)) 7 { 8 res= 阅读全文
posted @ 2013-01-16 13:55 symons 阅读(154) 评论(0) 推荐(0)

2013年1月15日

摘要: 13号去雪地杯踢比赛了,12点一场+下午3点一场。比赛成绩是一剩一负。在第一场,我打进了一个进球好爽!关于这个雪地杯可是跟在草地上踢球完全不一样,脚下踩的全是雪,跑不起来,刹不住车。球砸到地下就变线。反正很不适应这种比赛,我也是第一次参加雪地杯,小组赛7场。挺不错的!然后晚上球队年终聚会。然后就各种各种各种,大家都懂的,然后直接影响到了我第二天的状态。终于我今天缓过来了,继续学习!!PS.我特别特别喜欢足球! 阅读全文
posted @ 2013-01-15 17:20 symons 阅读(130) 评论(0) 推荐(0)

摘要: 比之前更明白了线段树的延迟更新,思想我感觉是,只更新到能交差的节点,不用更新到底,算是一种“偷懒”吧。我反正是一想这句话就懂了。 好了,代码风格都是一样的都是学习NotOnlySuccess的【完全版线段树】的风格。ps.我更喜欢res来表示结果。-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. 阅读全文
posted @ 2013-01-15 17:14 symons 阅读(152) 评论(0) 推荐(0)

2013年1月12日

摘要: 简单看了线段树的点更新什么的,后来发现还有成段更新。然后今天中午踢完球回来就开始死磕,终于把1698给AC了,然后还知道google ”pudge“,出来的全是dota里面的屠夫啊。哈哈,小娱乐。 就是col数组是延迟更新。别的我也不说了,我会加在代码里面。 1 #include <stdio.h> 2 #define lson l,m,rt<<1 3 #define rson m+1,r,rt<<1|1 4 #define maxn 200000+10 5 int col[maxn<<2]; 6 int sum[maxn<<2]; 阅读全文
posted @ 2013-01-12 21:26 symons 阅读(174) 评论(0) 推荐(0)

摘要: 看的我好不爽,是我太急功近利了吗?我应该改掉这个坏习惯。 阅读全文
posted @ 2013-01-12 16:04 symons 阅读(122) 评论(1) 推荐(0)

2013年1月11日

摘要: 知道了这个解法,让我很兴奋。 好,多余的话不说,上代码。 1 #include <stdio.h> 2 #define lson l,m,rt<<1 3 #define rson m+1,r,rt<<1|1 4 #define maxn 222222 5 int val[maxn],sum[maxn<<2],pos[maxn],res[maxn]; 6 int id; 7 void build(int l,int r,int rt) 8 { 9 sum[rt]=r-l+1;10 if(l==r)11 return;12 int m=(l+r)&g 阅读全文
posted @ 2013-01-11 11:32 symons 阅读(152) 评论(0) 推荐(0)

2013年1月10日

摘要: 这题第一想法就是暴力,但是时间给了8s,卡的就是暴力。所以用线段树来做。 我自己没有想出来解法,后来研究了NotOnlySuccess的代码才恍然大悟,原来思想的魅力是这么大。然后自己写了自己的代码。至于线段树的风格嘛,我开始就是看他的代码,所以线段树这块现在都是他的风格,什么时候等我更透彻的对线段树有了深层次的认识的时候我应该就能开自己的关于线段树的代码风格了。 本题:将树上所有节点初始化为板子的宽度。然后每次读入一个宽度,判断这个宽度是不是比板子中余下的最大宽度要大。是的话输出-1,不是的话那必定有一个位置可以放这个通告。优先放到左子树里面,这是因为题目中要求能放到最高就放到最高。然后在. 阅读全文
posted @ 2013-01-10 21:09 symons 阅读(157) 评论(0) 推荐(0)

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)