bzoj 2058+2059+2060 Usaco2010 Nov】的更多相关文章

三道金组比较容易的题目.. 2058 首先交换次数就是逆序对数,因为只能交换相邻的两数 先对原序列找逆序对数 用树状数组nlogn求出 然后O(n)依次求出其循环序列的逆序对数 比如 3 5 4 2 1 循环之后相对应的位置变成 2 4 3 1 5 表示第一个数到位置2,第二个数到位置4,第三个数到位置1 etc. 那么依次减一的那些数的逆序对数是不变的.只有1变成5的那个增加或减少了逆序对数 由于5是序列里最大的数,设其所在位置为i,因此增加了n-i对,减少了i-1对 这样总复杂度就是nlog…
树形dp..水 ------------------------------------------------------------------------ #include<cstdio> #include<algorithm> #include<cstring> #include<iostream>   #define rep( i , n ) for( int i = 0 ; i < n ; i++ ) #define clr( x , c…
2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛 Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 252  Solved: 185[Submit][Status] Description 经过了几周的辛苦工作,贝茜终于迎来了一个假期.作为奶牛群中最会社交的牛,她希望去拜访N(1<=N<=50000)个朋友.这些朋友被标号为1..N.这些奶牛有一个不同寻常的交通系统,里面有N-1条路,每条路连接了一对编号为C1和C2的奶牛…
http://www.lydsy.com/JudgeOnline/problem.php?id=2060 裸的树形dp d[x][1]表示访问x的数量,d[x][0]表示不访问x的数量 d[x][1]=sum{d[y][0]}, y是儿子 d[x][0]=sum{max(d[y][1], d[y][0])}, y是儿子 然后任意找一个点当做根dfs即可. 答案就是max(d[root][0], d[root][1]) #include <cstdio> #include <cstring…
[算法]树形DP [题解]没有上司的舞会?233 f[x][0]=∑max(f[v][0],f[v][1]) f[x][1]=(∑f[v][0])+1 #include<cstdio> #include<algorithm> #include<cstring> using namespace std; ; ]; ],tot=; void insert(int u,int v){tot++;e[tot].v=v;e[tot].from=first[u];first[u]=…
设f[u][0/1]为u这个点不选/选,转移的时候从儿子转移,f[u][1]=sum(f[son][0])+1,f[u][0]=sum(max(f[son][0],f[e[i].to][1])) #include<iostream> #include<cstdio> using namespace std; const int N=50005; int n,h[N],cnt,f[N][2]; struct qwe { int ne,to; }e[N<<1]; int r…
Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) #define maxn 200000 using namespace std; int edges; int f[maxn],g[maxn]; int hd[maxn],to[maxn],nex[maxn]; void addedge(int u,int v) { nex[++edges]=hd[u],hd…
2058: [Usaco2010 Nov]Cow Photographs Time Limit: 3 Sec  Memory Limit: 64 MBSubmit: 190  Solved: 104[Submit][Status][Discuss] Description 奶牛的图片 Farmer John希望给他的N(1<=N<=100,000)只奶牛拍照片,这样他就可以向他的朋友炫耀他的奶牛.这N只奶牛被标号为1..N. 在照相的那一天,奶牛们排成了一排.其中第i个位置上是标号为c_i(1…
BZOJ_2058_[Usaco2010 Nov]Cow Photographs_逆序对 题意: 奶牛的图片 Farmer John希望给他的N(1<=N<=100,000)只奶牛拍照片,这样他就可以向他的朋友炫耀他的奶牛.这N只奶牛被标号为1..N. 在照相的那一天,奶牛们排成了一排.其中第i个位置上是标号为c_i(1<=c_i<=N)的奶牛.对于奶牛的站位,Farmer John有他自己的想法. FJ是这么想的,标号为i(1<=i<=n-1)的奶牛只能站在标号为i+…
Cow Photographs bzoj-2058 Usaco-2010 Nov 题目大意:给定一个n的排列.每次操作可以交换相邻两个数.问将序列变成一个:$i,i+1,i+2,...,n,1,2,...,i-1$形式的序列最少操作次数. 注释:$1\le n\le 10^5$. 想法: 我们做过将序列变成1~n的形式,就是用树状数组求一下逆序对个数. 而这个题我们先求出i=1的答案,没错就是逆序对个数. 然后我们考虑如何从$i$变成$i+1$. 每次,我们考虑将当前序列中最小的数变成最大的数加…