feat: 添加P1850.cpp和P2827.cpp的初始代码实现

实现两个算法题目的初始代码框架,包括输入处理和基本数据结构初始化
This commit is contained in:
Zengtudor 2025-11-22 20:57:30 +08:00
parent ae6d4da30e
commit 62cdfbed7b
2 changed files with 78 additions and 0 deletions

26
src/11/22/P1850.cpp Normal file
View File

@ -0,0 +1,26 @@
#include <cstdint>
#include <iostream>
#include <istream>
#include <vector>
using ll = int64_t;
ll n,m,v,e;
std::vector<std::vector<ll>> mp;
std::vector<ll> c,d;
int main(){
std::iostream::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cin>>n>>m>>v>>e;
mp.resize(v+1,std::vector<ll>(v+1));
c.resize(n+1);
d.resize(n+1);
for(ll i=1;i<=n;i++){
std::cin>>c[i];
}
for(ll i=1;i<=n;i++){
std::cin>>d[i];
}
}

52
src/11/22/P2827.cpp Normal file
View File

@ -0,0 +1,52 @@
#include <cstdint>
#include <iostream>
#include <istream>
#include <queue>
#include <vector>
using ll = int;
#define printf
#define pv(v)do{printf("[DEBUG] %s= %lld\n",#v,(v));}while(0)
ll n,m,q,u,v,t;
double p;
std::vector<ll> a;
std::priority_queue<ll> pq;
int main(){
std::iostream::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cin>>n>>m>>q>>u>>v>>t;
p=double(u)/double(v);
a.resize(n+1);
for(ll i=1;i<=n;i++){
std::cin>>a[i];
pq.emplace(a[i]);
}
for(ll i=0;i<m;i++){ // 7e6*log(m)
pv(i);
ll qi=q*i,top=pq.top()+qi;
pv(pq.top());
pq.pop();
pv(top);
pv(qi);
ll a=p*top,b=top-a;
pq.emplace(a-qi-q);
pq.emplace(b-qi-q);
if((i+1)%t==0){
std::cout<<top<<" ";
}
}
std::cout<<"\n";
ll idx=1;
const ll qm=q*m;
while(pq.size()){
if(idx%t==0){
std::cout<<pq.top()+qm<<" ";
}
pq.pop();
idx++;
}
std::cout<<"\n";
}