3.18日的总结
来源:互联网 发布:玄幻网络四大名著 编辑:程序博客网 时间:2024/05/13 21:27
丁神真的超级腹黑…而且样例还有错,害得我想了好久它是什么意思,辛辛苦苦(其实也就水水)编了个暴力出来,结果还是直接WA掉了。
数据结构这个东西真的超级高端,然而我却仿佛没学过一样,好多题看到数据范围知道:啊这是数据结构的数据,然后……就没有然后了。简直垃圾到不行。
今天第一道题可以用树状数组来做,之前一直觉得自己树状数组学的还行,然而还是直接蒙蔽在那了。
1。求逆序对之和
#include<cstdio>#include<cstring>#include<algorithm>#define N 1000010#define ll long longusing namespace std;int n;int a[N*2],c[N*2];ll ans=0,cnt=0;int lowbit(int x){ return x&(-x);}void modify(int x,int delta){ while(x<=n){ c[x]+=delta; x+=lowbit(x); }}int query(int x){ int rt=0; while(x){ rt+=c[x]; x-=lowbit(x); } return rt;}int main(){ freopen("rotinv.in","r",stdin); freopen("rotinv.out","w",stdout); scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); a[n+i]=a[i]; } for(int i=1;i<=n;i++){ cnt+=(i-1)-query(a[i]); modify(a[i],1); } for(int i=n+1;i<=n*2;i++){ modify(a[i-n],-1); cnt+=(n-1)-query(a[i]); cnt-=query(a[i-n]-1); modify(a[i],1); ans+=cnt; } printf("%I64d",ans); return 0;}
【其实我现在都还不怎么理解这个】【误】
2。 rise
#include<cstdio>#include<cstring>#include<algorithm>#define N 100010using namespace std;int n,m,tot=0;int a[N],head[N],q[N],b[N];struct node{ int pre,to;}edge[N];void adde(int from,int to){ tot++; edge[tot].pre=head[from]; edge[tot].to=to; head[from]=tot;}int dfs(int u,int r){ for(int i=head[u];i;i=edge[i].pre){ int v=edge[i].to; if(v<=r){ dfs(v,r); tot++; } } return tot;}int main(){ freopen("rise.in","r",stdin); freopen("rise.out","w",stdout); scanf("%d%d",&n,&m); for(register int i=1;i<=n;i++){ scanf("%d",&a[i]); } for(register int i=1;i<=n;i++){ for(register int j=i+1;j<=n;j++){ if(a[j]>a[i]){ adde(i,j); break; } } }/* for(int i=1;i<=n;i++){ for(int j=head[i];j;j=edge[j].pre){ printf("%d %d\n",i,edge[j].to); } }*/ while(m--){ int u,v; tot=1; scanf("%d%d",&u,&v); printf("%d\n",dfs(u,v)); } return 0;}
这个好像再深入一点也是一个数据结构吗,那些比较吊的东西就大概知道就行了……用链表来存还是比较巧妙的。
暴力写得好也是挺好的。
3。 seqmod
好恶心啊这道题……强行用丁神的有序链剖来搞(假装我知道有序链剖是个啥)
没有编出来,没有代码。。。
数据结构真的需要好好补补了。
【说得就跟还有救一样】
0 0
- 3.18日的总结
- 练习日的总结
- 3.11日的总结
- 2017.5.1日的总结
- 2017.5.5日的总结
- 日总结
- 2013.8.11-数学日2的总结
- 总结一下2014年3月2日的36氪开放日参加体验
- java加强课程的一些总结!2月18日!
- java加强课程的一些总结!2月20日!
- 9月16日汇报进度时的谈话总结
- sql获取当前年 月 日的总结
- 2016年1月24日的比赛总结
- 函数的复习(10月15日学习总结)
- 11月22日--我总结的零散知识点
- 7月20日--Java基础的回顾与总结
- 2017年4月14日22:52 的总结
- 关于10-28日题目的题解与总结
- match_Parent、fill_parent和wrap_Parent区别
- leetcode
- HDU 5093 Battle ships (最大匹配)
- leetcode
- linux基础unit2
- 3.18日的总结
- lightoj 1341
- easyUI Tree多级菜单回显
- 享元模式
- leetcode
- 有个程序猿要去当CEO了:(一)事情始末
- 日志
- 动态规划之:让你轻松理解背包算法
- UVa_The Blocks Problem(Vector)