思路:最大值最小,很明顯的二分答案。
#include
#define rep(i,f,t ) for(int i=(f),i##_end_=(t);i<=i##_end_;i++)
#define drep(i,f,t ) for(int i=(f),i##_end_=(t);i>=i##_end_;i--)
#define ll long long
#define inf 0x3f3f3f3f
#define n 1005
#define m 205
#define p 1000000007
using
namespace
std;
int n,m,k;
struct p10
}printf("%lld",(dp[n&1][m][k][0]+dp[n&1][m][k][1])%p);
}}p70;
int main()
思路:二分答案,樹鏈剖分或倍增求lca,再樹上差分、字首和,還有一點dfs序。
解1:#include
#define rep(i,f,t ) for(int i=(f),i##_end_=(t);i<=i##_end_;i++)
#define drep(i,f,t ) for(int i=(f),i##_end_=(t);i>=i##_end_;i--)
#define ll long long
#define inf 0x3f3f3f3f
#define n 300005
#define t 19
using
namespace
std;
int n,m,x,y,z,max,cnm;
int d[n],dis[n],val[n],num[n],tmp[n],fa[n][t+5];
struct nodeq[n];
struct node;
vector
e[n];
void dfs(int x,int f)
rep(i,0,e[x].size()-1)
}void up(int &x,int step)
bool check(int mid)
if(!cnt)return
1; drep(i,n,2)tmp[fa[num[i]][0]]+=tmp[num[i]];
rep(i,2,n)if(val[i]>=limit&&tmp[i]==cnt) return
1; return0;}
int main());
e[y].push_back((node));
r+=z;
}dfs(1,0);
rep(i,1,m)
while(l<=r)
cout
《解2:
#include
#define rep(i,f,t ) for(int i=(f),i##_end_=(t);i<=i##_end_;i++)
#define drep(i,f,t ) for(int i=(f),i##_end_=(t);i>=i##_end_;i--)
#define ll long long
#define inf 0x3f3f3f3f
#define n 300005
#define m 19
using
namespace
std;
int n,m;
int d[n],fa[n],son[n],sz[n],top[n],dis[n];//shu pou
int val[n],sum[n],dp[n];
int lt[n],rt[n],list[n],t;//dfs xu
struct node;
vector
e[n];
struct node
}q[n];
void dfs1(int x,int f)
}void dfs2(int x,int tp)
rt[x]=t;
}int lca(int a,int b)
if(a==b)return;
if(d[a]>d[b])swap(a,b);
sum[lt[a]+1]++,sum[lt[b]+1]--;
}bool check(int mid)
dp[sz]=mx;
return q[1].dis-dp[sz]<=mid;
}int main());
e[b].push_back((node));
}dfs1(1,0);
dfs2(1,1);
rep(i,1,m)
sort(q+1,q+1+m);
int l=0,r=q[1].dis,ans;
while(l<=r)
cout
《小結:第2題的dp還是做的慢了點,定義時卡了挺久的,導致第3題敲的很急,敲錯了2次…
2017 7 29 離線賽 總結
本著貪心的思想,我先斜著走到頂,然後直走到終點,顯然這是最優的,但是我忽視了斜著走的最後一步可以和直著走的第一步合併,我錯誤地把兩個過程分開了。假如我當時多找幾組資料來模擬說不定能找到這個錯誤,我也沒敲個暴力來對拍 因為暴力太長了 我得到的教訓是 不能肯定自己演算法的正確性是,不如敲個暴力對拍一下,...
離線賽20171006總結
這次考得還不錯,頗有些遺憾的是因為第一題我離正解已經很近了,可惜考試畢竟是考試,一開始的題目看錯沒看到相鄰的條件浪費了很多時間,到後來就沒有時間去寫正解了。這畢竟也是一種實力,不能說題目看錯失誤問題就不大。上次的考試兩個輸出只能模乙個沒看到導致少了70分。這種失誤還是太低階了,也太致命了。這種題目看...
2017 10 7離線賽總結
失分小結 估分 玄學 實際分數 300 收穫 寫題前仔細分析題目,好好思考 考試過程 第一題真的想不到,只好打個表,結果由於資料半天沒輸出來,心態 有前前後後折騰了半個小時 第二題先是打了個n n暴力,又調了半天,這時考試只剩下兩個小時 第三題思考了大約十分鐘,然後想到了正解,實現比較快,乙個小時就...