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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

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

编程问答

Codeforces Global Round 11 ABCD题解

發(fā)布時(shí)間:2023/12/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces Global Round 11 ABCD题解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

真陰間啊 , 不僅時(shí)長(zhǎng)陰間, 題目也有點(diǎn)emmmmm
打的不順利,沒(méi)有按預(yù)想在15分鐘內(nèi)把AB題寫(xiě)出來(lái) ((。・?・)ノ゙害)
開(kāi)局碼了發(fā)A WA2 人傻了 開(kāi)始質(zhì)疑自己了 先擱著吧
然后又碼了一個(gè)半成品B emmm 有bug 又鴿著了
然后C好像沒(méi)啥想法 鴿著 看看D
如果沒(méi)有翻譯我估計(jì)D題我是寫(xiě)不出來(lái)的 QAQ 簡(jiǎn)直閱讀理解

1427A題鏈接
給你一個(gè)數(shù)組 要我們重新排列以后 對(duì)于任意長(zhǎng)度的前綴和不為0
那么考慮長(zhǎng)度為n的前綴和 ,如果它為0 那么必然不可行 輸出NO
否則根據(jù)前綴和的大小 考慮是從大到小輸出 還是從小到大輸出
非常簡(jiǎn)單 (然后我當(dāng)時(shí)不知道在討論啥玩意 WA2)

#include<bits/stdc++.h> #include<stdlib.h> #include<algorithm> #include<stdio.h> #include<string.h> #include<queue> #include<time.h> #include <cstdio> #include <iostream> #include <vector> #define ll long long #define int long long #define inf 0x3f3f3f3f #define mods 1000000007 #define modd 998244353 #define PI acos(-1) #define fi first #define se second #define lowbit(x) (x&(-x)) #define mp make_pair #define pb push_back #define si size() #define E exp(1.0) #define fixed cout.setf(ios::fixed) #define fixeds(x) setprecision(x) #define IOS ios::sync_with_stdio(false);cin.tie(0)using namespace std;ll gcd(ll a,ll b){if(a<0)a=-a;if(b<0)b=-b;return b==0?a:gcd(b,a%b);} template<typename T>void read(T &res){bool flag=false;char ch;while(!isdigit(ch=getchar()))(ch=='-')&&(flag=true); for(res=ch-48;isdigit(ch=getchar());res=(res<<1)+(res<<3)+ch - 48);flag&&(res=-res);} ll lcm(ll a,ll b){return a*b/gcd(a,b);} ll qp(ll a,ll b,ll mod){ll ans=1;if(b==0){return ans%mod;}while(b){if(b%2==1){b--;ans=ans*a%mod;}a=a*a%mod;b=b/2;}return ans%mod;}//快速冪% ll qpn(ll a,ll b, ll p){ll ans = 1;a%=p;while(b){if(b&1){ans = (ans*a)%p;--b;}a =(a*a)%p;b >>= 1;}return ans%p;}//逆元 (分子*qp(分母,mod-2,mod))%mod;const int ma=1; ll a[200]; ll b[200]; signed main(){ ll t; read(t); while(t--){ ll n; read(n); ll la=0; ll lb=0; ll add=0; ll f=0; for(int i=1;i<=n;i++){ read(a[i]); add=add+a[i];//if(x>=0){} if(add==0){printf("NO\n");continue; }sort(a+1,a+1+n);if(add>0){printf("YES\n");for(int i=n;i>=1;i--){printf("%lld ",a[i]);}}else{printf("YES\n");for(int i=1;i<=n;i++){printf("%lld ",a[i]);}} printf("\n"); } }

1427B鏈接
給一個(gè)長(zhǎng)度為n的字符串 包含L W代表輸贏
輸了沒(méi)有積分, 單贏拿一分,連續(xù)贏(前一個(gè)是W 后一個(gè)也是W) 拿兩分
給了我們操作數(shù) K 可以更改 字符串 詢(xún)問(wèn)最終可以拿最多 多少分

觀察一下WLW WLLW LLW WLL
不難不發(fā) 如果能填充W之間的縫隙 顯然貢獻(xiàn)值是最高的
那么我們要分類(lèi)處理
先找到第一個(gè)W的pos 和最后一個(gè)W的pos 在這個(gè)區(qū)間里面找長(zhǎng)度L的縫隙 存起來(lái) 排序 優(yōu)先填充小的
如果處理完了以后還有多的K 可以使用 那么就處理1-- <pos1 以及 pos2+1 到n
思路就這樣 碼起來(lái)有點(diǎn)點(diǎn)麻煩

https://paste.ubuntu.com/p/v2m3FzCHFQ/ 鏈接里面

1247C
感覺(jué)挺像寒假訓(xùn)練營(yíng)那個(gè)寶可夢(mèng)的問(wèn)題
題目給了我們一個(gè)R長(zhǎng)度的坐標(biāo)系
自己初始位置為(1, 1)
現(xiàn)在有n個(gè)人 在不同時(shí)間出現(xiàn)在不同的地點(diǎn) 時(shí)間過(guò)了會(huì)消失
移動(dòng)速度是1s 一個(gè)單位 問(wèn)最多能遇到多少個(gè)人
(說(shuō)到這一步就看自己有沒(méi)有寒假好好補(bǔ)題了)

#include<bits/stdc++.h> #include<stdlib.h> #include<algorithm> #include<stdio.h> #include<string.h> #include<queue> #include<time.h> #include <cstdio> #include <iostream> #include <vector> #define ll long long #define int long long #define inf 0x3f3f3f3f #define mods 1000000007 #define modd 998244353 #define PI acos(-1) #define fi first #define se second #define lowbit(x) (x&(-x)) #define mp make_pair #define pb push_back #define si size() #define E exp(1.0) #define fixed cout.setf(ios::fixed) #define fixeds(x) setprecision(x) #define IOS ios::sync_with_stdio(false);cin.tie(0) using namespace std; ll gcd(ll a,ll b) {if(a<0)a=-a;if(b<0)b=-b;return b==0?a:gcd(b,a%b); } template<typename T>void read(T &res) {bool flag=false;char ch;while(!isdigit(ch=getchar()))(ch=='-')&&(flag=true);for(res=ch-48; isdigit(ch=getchar()); res=(res<<1)+(res<<3)+ch - 48);flag&&(res=-res); } ll lcm(ll a,ll b) {return a*b/gcd(a,b); } ll qp(ll a,ll b,ll mod) {ll ans=1; //快速冪%if(b==0){return ans%mod;}while(b){if(b%2==1){b--;ans=ans*a%mod;}a=a*a%mod;b=b/2;}return ans%mod; } ll qpn(ll a,ll b, ll p) {ll ans = 1; //逆元 (分子*qp(分母,mod-2,mod))%mod;a%=p;while(b){if(b&1){ans = (ans*a)%p;--b;}a =(a*a)%p;b >>= 1;}return ans%p; } const int maxn=1e6+7; int euler[maxn],prime[maxn],cntt; void Euler(int n)//求n以?xún)?nèi)所有數(shù)的歐拉函數(shù)值 {memset(euler,0,sizeof(euler));euler[1]=0;cntt=0;for(int i=2; i<=n; i++){if(!euler[i]){euler[i]=i-1;prime[cntt++]=i;}for(int j=0; j<cntt&&prime[j]*i<=n; j++){if(i%prime[j])euler[prime[j]*i]=euler[i]*(prime[j]-1);else{euler[prime[j]*i]=euler[i]*prime[j];break;}}} }struct pe{ ll t; ll x; ll y;}sb[1000006]; const int op=1e6+7; ll pre[op],dp[op]; ll fac[op]; ll dp2[op]; bool check(ll i,ll j){if(abs(sb[i].x-sb[j].x)+abs(sb[i].y-sb[j].y)<=(sb[i].t-sb[j].t)){return true;} return false; } signed main() { fac[1]=1;ll n,r;read(r);read(n);for(int i=1;i<=n;i++){read(sb[i].t);read(sb[i].x);read(sb[i].y);}sb[0].t=0;sb[0].x=1;sb[0].y=1;for(int i=0;i<=n;i++){pre[i]=-inf;dp[i]=-inf;}dp[0]=0;pre[0]=0;ll need=0;for(int i=1;i<=n;i++){if(i>1000) dp[i]=pre[i-1001]+1;for(int j=max(need,i-1002);j<i;j++){if(check(i,j)){dp[i]=max(dp[i],dp[j]+1);}else{continue;}}pre[i]=max(pre[i-1],dp[i]);}ll ans=0;ll ma=0;for(int i=1;i<=n;i++) {ans=max(ans,dp[i]);}printf("%lld\n",ans);return 0; }

1427D鏈接
給我們一個(gè)序列 我們可以把它劃分為若干個(gè)塊 從左往右
然后塊D_k D_(k-1) ----- D1 逆排列 但是塊里面的順序不變
問(wèn)操作多少次可以使得序列變得有序 1–n排列
輸出操作次數(shù)以及 每次的劃分塊數(shù) 和劃分每個(gè)塊的大小
注意到n很小 而且題目也不要求極限化操作次數(shù)
那么直接暴力劃分就好了, 最壞的情況下一次劃分 只能使得一個(gè)數(shù)歸位
52次而已 暴力足以
舉個(gè)栗子 6 5 4 3 2 1 劃分1 1 4 變?yōu)?4 3 2 1 5 6
劃分1 1 4 變?yōu)?2 1 5 6 3 4
劃分1 1 4 變?yōu)?5 6 3 4 1 2
劃分 2 2 2 變?yōu)?1 2 3 4 5 6

#include<bits/stdc++.h> #include<stdlib.h> #include<algorithm> #include<stdio.h> #include<string.h> #include<queue> #include<time.h> #include <cstdio> #include <iostream> #include <vector> #define ll long long #define int long long #define inf 0x3f3f3f3f #define mods 1000000007 #define modd 998244353 #define PI acos(-1) #define fi first #define se second #define lowbit(x) (x&(-x)) #define mp make_pair #define pb push_back #define si size() #define E exp(1.0) #define fixed cout.setf(ios::fixed) #define fixeds(x) setprecision(x) #define IOS ios::sync_with_stdio(false);cin.tie(0) using namespace std; ll gcd(ll a,ll b) {if(a<0)a=-a;if(b<0)b=-b;return b==0?a:gcd(b,a%b); } template<typename T>void read(T &res) {bool flag=false;char ch;while(!isdigit(ch=getchar()))(ch=='-')&&(flag=true);for(res=ch-48; isdigit(ch=getchar()); res=(res<<1)+(res<<3)+ch - 48);flag&&(res=-res); } ll lcm(ll a,ll b) {return a*b/gcd(a,b); } ll qp(ll a,ll b,ll mod) {ll ans=1; //快速冪%if(b==0){return ans%mod;}while(b){if(b%2==1){b--;ans=ans*a%mod;}a=a*a%mod;b=b/2;}return ans%mod; } ll qpn(ll a,ll b, ll p) {ll ans = 1; //逆元 (分子*qp(分母,mod-2,mod))%mod;a%=p;while(b){if(b&1){ans = (ans*a)%p;--b;}a =(a*a)%p;b >>= 1;}return ans%p; } vector<int> v[100009]; ll a[609]; ll b[609]; vector<int> ans[100009]; signed main() {ll n;read(n);ll sum=0;ll rnm=0;for(int i=1; i<=n; i++){read(a[i]);if(a[i]>a[i-1]){rnm++;}}ll ti=0;while(true){ti++;ll cnt=1,p1,p;bool flag=0;// ll pos=0;for(int i=2; i<=n; i++){if(a[i-1]!=a[i]-1){flag=1;}else{continue;}}if(!flag)break;for(int i=1; i<=n; i++){if(a[i]!=i){p1=i;break;}else{continue;}}if(p1!=1){ans[ti].pb(p1-1);}else{sum++;}for(int i=p1+1; i<=n; i++){if(a[i-1]==a[i]-1){cnt++;continue;}if(a[i-1]!=a[i]-1){p=a[p1];p++;p--;p1=i;break;}}ans[ti].pb(cnt);cnt=1;for(int i=p1; i<=n; i++){if(a[i]==p-1){p1=i;ans[ti].pb(cnt);//pos++;break;}cnt++;}if(p1!=n)ans[ti].pb(n-p1);int pos=n,now=1;for(int i=ans[ti].size()-1; i>=0; i--){for(int j=pos-ans[ti][i]+1; j<=pos; j++){b[now++]=a[j];}pos=pos-ans[ti][i];}for(int i=1; i<=n; i++){a[i]=b[i];}}printf("%lld\n",ti-1);for(int i=1; i<ti; i++){printf("%lld ",ans[i].size());for(int j=0; j<ans[i].size(); j++){printf("%lld ",ans[i][j]);}printf("\n");}return 0;}

E題不會(huì) 但是應(yīng)該可以補(bǔ) qwq
開(kāi)局預(yù)測(cè)-174 結(jié)束的時(shí)候上到2000分了 就很刺激

總結(jié)

以上是生活随笔為你收集整理的Codeforces Global Round 11 ABCD题解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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