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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Codeforces Round 542 (Div. 2)

發(fā)布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces Round 542 (Div. 2) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

layout: post
title: Codeforces Round 542 (Div. 2)
author: "luowentaoaa"
catalog: true
tags:
mathjax: true
- codeforces
- 并查集
---

傳送門

前三題太簡單不寫

D.Toy Train (貪心)

題意

有n個車站,按照環(huán)前進,有m條要求從x送到y(tǒng),每次從x最多能拿一個糖,輸出在第i個車站出發(fā)最少需要多少時間完成所有要求 (注意車的容量無窮)

思路

所以我們直接枚舉每個點就行了啊。。。找到一個花費最多的點 把他送完答案就出來了 當然在送他的時候順便把其它的都送了所以貪心的策略就是最后送少的。

#include<bits/stdc++.h> using namespace std; typedef long long ll; const ll mod=1e9+7; const int maxn=5e4+50; const ll inf=0x3f3f3f3f3f3f3f3fLL; ll num[maxn],len[maxn]; int main() {std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);ll n,m;cin>>n>>m;fill(len,len+maxn,inf);while(m--){ll a,b;cin>>a>>b;num[a]++;if(a<b)len[a]=min(len[a],b-a);else len[a]=min(len[a],n-a+b);}for(int i=1;i<=n;i++){if(num[i]==0)len[i]=0;}for(int i=1;i<=n;i++){ll ans=0;for(int j=1;j<=n;j++){ll dis=(j>=i)?j-i:n-i+j;dis+=(num[j]-1ll)*n+len[j];ans=max(ans,dis);}cout<<ans<<" ";}return 0; }

E.Wrong Answer

題意

構造題,這里有一段代碼:它只會記錄和為非負數(shù)的一段數(shù)乘以其區(qū)間長度的最大值,但我們現(xiàn)在要求的是sum{ai}*(r-l+1),l<=i<=r,很明顯這段代碼是有錯誤的。

然后會輸入一個k,你構造一組數(shù)據(jù),使得正解和這段代碼給出的答案相差k。最后輸出你給出的數(shù)據(jù)。

思路

假設前面1998個a[i]的值為0,倒二的值為-p,最后一個的值為d+p;然后正解的答案是2000*d
題目的答案的d+p 相差為2000d-(d+p)=K;
1999d=k+p;
d=(k+p)/1999
令d=1999-k%19;

#include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1e5+50;int main() {int k;cin>>k;int p=1999-k%1999;;cout<<2000<<endl;for(int i=1;i<=1998;i++)cout<<0<<" ";cout<<-p<<" "<<((k+p)/1999+p)<<endl;return 0; }

轉載于:https://www.cnblogs.com/luowentao/p/10434582.html

總結

以上是生活随笔為你收集整理的Codeforces Round 542 (Div. 2)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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