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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises)

發(fā)布時間:2024/8/26 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

A. Fraction

題目鏈接:http://codeforces.com/contest/854/problem/A

題目意思:給出一個數(shù)n,求兩個數(shù)a+b=n,且a/b不可約分,如果存在多組滿足條件的a和b,輸出a/b最大的a和b。

題目思路:首先a+b=n,那么暴力枚舉i和n-i,且gcd(i,n-i)==1,由于i越大是n-i越小,則a/b的值越大。

代碼:

1 //Author: xiaowuga 2 #include <bits/stdc++.h> 3 using namespace std; 4 #define inf 0x3f3f3f3f 5 #define MAX INT_MAX 6 #define mem(s,ch) memset(s,ch,sizeof(s)) 7 const long long N=100000; 8 const long long mod=1e9+7; 9 typedef long long LL; 10 typedef int II; 11 typedef unsigned long long ull; 12 #define nc cout<<"nc"<<endl 13 #define sp " " 14 int main() { 15 ios::sync_with_stdio(false);cin.tie(0); 16 II n; 17 cin>>n; 18 II a,b; 19 for(II i=1;i<=n/2;i++){ 20 if(__gcd(i,n-i)==1){ 21 a=i;b=n-i; 22 } 23 } 24 cout<<a<<' '<<b<<endl; 25 return 0; 26 } View Code

B. Maxim Buys an Apartment

題目鏈接:http://codeforces.com/contest/854/problem/B

題目意思:有n個房屋排成一排,現(xiàn)在其中k個房屋已經(jīng)住了人,但是不知道其中的哪些房屋住進(jìn)了房屋,但是小明喜歡住進(jìn)鄰居的房屋中有人住進(jìn)的的房子里。問最少有多少個房屋滿足條件,最多有多少個房屋滿足條件。

題目思路:首先如果首先如果n遠(yuǎn)大于k了話,那么每一個住人的房屋,周圍的兩個房屋都滿足小明的條件,所以我們想到每三個放一個。如果k×3>n,那么答案就是n-k,否則答案就是2×k,當(dāng)然還有一些特殊情況,比如n==k還有k==0的時候,需要特判一下。

代碼:

1 /* *********************************************** 2 Author :xiaowuga 3 Created Time :2017年10月18日 星期三 13時36分58秒 4 File Name :Desktop/B.cpp 5 ************************************************ */ 6 #include <bits/stdc++.h> 7 typedef long long LL; 8 #define endl "\n" 9 #define inf 0x3f3f3f3f 10 const long long N=1000000; 11 const long long mod=1e9+7; 12 using namespace std; 13 int main(){ 14 ios::sync_with_stdio(false);cin.tie(0); 15 LL n,k; 16 cin>>n>>k; 17 cout<<(k&&k<n)<<' '<<min(n-k,2*k)<<endl; 18 return 0; 19 } View Code

C. Planning

題目鏈接:http://codeforces.com/contest/854/problem/C

題目意思:原本有n個航班,他們的起飛時間是1-n,現(xiàn)在機(jī)場規(guī)定在每一天的前k分鐘不能有飛機(jī)起飛,那么就得有航班起飛要延誤,現(xiàn)在給出每個航班延誤一分鐘所消耗的費用,問你怎么安排飛機(jī)的起飛才能使花費最少,飛機(jī)起飛時間不能比原本的要早。

題目思路:對于一個時間,用一個優(yōu)先隊列處理能放在當(dāng)前時間的擁有每分鐘最大損失的航班,這樣只需要n*logn的復(fù)雜度。

題目代碼:

1 //Author: xiaowuga 2 #include <bits/stdc++.h> 3 using namespace std; 4 #define inf 0x3f3f3f3f 5 #define MAX INT_MAX 6 #define mem(s,ch) memset(s,ch,sizeof(s)) 7 const long long N=100000; 8 const long long mod=1e9+7; 9 typedef long long LL; 10 typedef int II; 11 typedef unsigned long long ull; 12 #define nc cout<<"nc"<<endl 13 #define sp " " 14 int main() { 15 ios::sync_with_stdio(false);cin.tie(0); 16 struct node{ 17 LL c,id; 18 bool operator <(const node &m) const { 19 return c<m.c; 20 } 21 }; 22 LL n,k; 23 vector<node>a; 24 cin>>n>>k; 25 a.resize(n+1); 26 priority_queue<node>q; 27 for(LL i=1;i<=n;i++){ 28 cin>>a[i].c; 29 a[i].id=i; 30 } 31 vector<int>ans(n+1); 32 for(LL i=1;i<=k;i++) q.push(a[i]); 33 for(LL i=k+1;i<=n+k;i++){ 34 if(i<=n) q.push(a[i]); 35 auto now=q.top(); 36 q.pop(); 37 ans[now.id]=i; 38 } 39 LL sum=0; 40 for(II i=1;i<=n;i++){ 41 sum+=(ans[i]-i)*a[i].c; 42 } 43 cout<<sum<<endl; 44 for(II i=1;i<=n;i++) cout<<ans[i]<<' '; 45 return 0; 46 } View Code

?

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

總結(jié)

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

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