t1
顯然排序掃瞄就可以 資料出問題了 t2
**題 是13年集訓隊**《登頂計畫》的簡化版本
可以做兩遍凸殼 然後再按照每個點可以看到的最大深度排序 用鍊錶維護
orz yzy線段樹差點a掉
[開錯陣列t3
暫時不會
資料出問題了
t1
#include #include #include #include using namespace std;
#define ll long long
const int inf=1e9+1;
ll sum,mmin=(ll)inf*inf;
int n,w=-inf,a=inf,s=inf,d=-inf;
struct hnum[50000+10];
struct js[50000+10],t[50000+10];
bool cmp1(h a,h b)num[maxn];//求茶几注意爆掉 int!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ll chacha(int x1,int y1,int x2,int y2)
ll cha(int x,int y,int z)
bool cmp(int x,int y)
top=0;
for(int i=n;i>=1;i--)
int mmax=0;h[0]=-1;
for(int i=1;i<=n;i++) h[i]=num[i].y,mmax=h[mmax]>h[i]?mmax:i;
for(int i=1;i<=n;i++) to[i]=h[l[i]]>h[r[i]]?l[i]:r[i];
for(int i=1;i<=n;i++) h[i]=h[to[i]];
h[mmax]=1e6+1;
for(int i=1;i<=n;i++) pre[i]=i-1,scc[i]=i+1,q[i]=i;
pre[1]=-1;scc[n]=-1;
sort(q+1,q+n+1,cmp);
for(int i=1;ix) add(scc[x],x),pre[scc[x]]=pre[x],scc[pre[x]]=scc[x];
else add(pre[x],x),scc[pre[x]]=scc[x],pre[scc[x]]=pre[x];
} bfs(mmax);
for(int i=1;i<=n;i++) printf("%d\n",ans[i]);
fclose(stdin);
fclose(stdout);
return 0;
}
弱省胡策 Round 1 OVOO
題目鏈結 description zhx有一棵 n nn 個點的樹,每條邊有乙個權值 定義乙個連通塊為乙個點集與使這些點連通的所有邊 這些點必需連通 定義乙個連通塊的權值為這個連通塊的邊權和 如果乙個連通塊只包含乙個點那麼它的權值為 0 00 zhx想找乙個包含 1 11 號點的連通塊送給他的妹子,...
洛谷多校Round5 Flaw
題目大意是在int32範圍內,考慮溢位的情況下,給定a n1問你a在int32之內的範圍有多少種 當然會彙編的話 優化一下常數直接迴圈一下int32也不是不可以 不會彙編的我 就直接算一下吧,高程入門題,唯一值得一提的就是輸入處理 直接用scanf的格式串控制就好 include include i...
杭電多校round2 The Oculus
讓我們定義fibonacci序列f1,f2,為f1 1,f2 2,fi fi 1 fi 2 i 3 眾所周知,每個正整數x都有其獨特的fibonacci表示 b1,b2,bn 因此 b1 f1 b2 f2 bn fn x。bn 1,對於每個i 1 i輸入的第一行包含單個整數t 1 t 10000 即...