日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

牛客NOIP暑期七天营-提高组1

發(fā)布時(shí)間:2023/12/2 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛客NOIP暑期七天营-提高组1 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??蚇OIP暑期七天營-提高組1

鏈接

A

邊權(quán)可為0就排序建一條鏈子。
但是邊權(quán)不為0
除了第一個(gè)有0的不行。
x連向上一個(gè)比他小的數(shù)。
期間判斷有無解。

#include <bits/stdc++.h> #define ll long long using namespace std; const int _=2e5+7; int read() {int x=0,f=1;char s=getchar();for(;s>'9'||s<'0';s=getchar()) if(s=='-') f=-1;for(;s>='0'&&s<='9';s=getchar()) x=x*10+s-'0';return x*f; } int n,S; struct edge{int a,b,c;}; struct node {int id,val;bool operator < (const node &b) const {return val==b.val?id<b.id:val<b.val;} }a[_]; std::vector<edge> ans; int main() {// freopen("a.in","r",stdin);n=read(),S=read();for(int i=1;i<=n;++i) a[i].val=read(),a[i].id=i;sort(a+1,a+1+n);for(int i=2;i<=n;++i) if(!a[i].val) return puts("-1"),0;for(int i=2;i<=n;) {int las=i;if(a[i].val-a[i-1].val>S) return puts("-1"),0;while(a[i].val==a[las].val) ans.push_back(edge{a[las-1].id,a[i].id,a[i].val-a[las-1].val}),++i;}printf("%d\n",(int)ans.size());for(auto x:ans) printf("%d %d %d\n", x.a,x.b,x.c);return 0; }

B

和XOR-MST差不多,就應(yīng)該早做掉這個(gè)ZR題,要不就不用想呢么久了。答案就是XOR-MST上的最大的那條邊。
感性:字?jǐn)?shù)內(nèi)的也是個(gè)完全圖。因?yàn)檫厵?quán)都比外邊的那條邊小,隨便連,兩顆子樹就可以變成任意形態(tài)的鏈子了。枚舉端點(diǎn)就行了。

#include <bits/stdc++.h> #define ll long long using namespace std; const int _=1e6+7; ll read() {ll x=0,f=1;char s=getchar();for(;s>'9'||s<'0';s=getchar()) if(s=='-') f=-1;for(;s>='0'&&s<='9';s=getchar()) x=x*10+s-'0';return x*f; } int n,ch[_*60][2],cnt=1,rt,dsr; ll a[_],ans; void insert(ll x) {int p=1;for(int i=59;i>=0;--i) {bool k=x&(1LL<<i);if(!ch[p][k]) ch[p][k]=++cnt;p=ch[p][k];} } ll query(ll x) {int p=rt;ll ans=0;for(int i=dsr;i>=0;--i) {bool k=x&(1LL<<i);if(ch[p][k]) p=ch[p][k];else p=ch[p][!k],ans|=1LL<<i;}return ans; } int main() {// freopen("b.in","r",stdin);n=read();for(int i=1;i<=n;++i)a[i]=read(),insert(a[i]);rt=1,dsr=59; while((!ch[rt][0]||!ch[rt][1])&&dsr>=0)rt=ch[rt][0]|ch[rt][1],dsr--;if(dsr<0) return puts("0"),0;ch[rt][1]=0;ans=1LL<<60;for(int i=1;i<=n;++i)if(a[i]&(1LL<<dsr)) ans=min(ans,query(a[i]));cout<<ans<<"\n";return 0; }

C

沒大看題,貌似很惡心的亞子。

轉(zhuǎn)載于:https://www.cnblogs.com/dsrdsr/p/11379882.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的牛客NOIP暑期七天营-提高组1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。