| 比赛 |
2026.9.5 |
评测结果 |
TTTTTWWWWWWTTTT |
| 题目名称 |
Pretty Pens |
最终得分 |
0 |
| 用户昵称 |
wmlsxzh |
运行时间 |
28.103 s |
| 代码语言 |
C++ |
内存使用 |
24.26 MiB |
| 提交时间 |
2026-09-05 11:23:14 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define MAXN 200005
int n,m,q;
vector<bool> vis[MAXN];
vector<int> pen[MAXN];
int f(int i,bool rev){
if(i==m+1)return 0;
int p1=0,midx=0;
for(size_t k=0;k<pen[i].size();++k){
bool v = vis[i][k];
if(v)continue;
int p = pen[i][k];
if(p>p1){
p1=p;
midx=k;
}
}
vis[i][midx]=true;
p1 = p1+f(i+1,rev);
vis[i][midx]=false;
int p2=0;
if(!rev){
rev=true;
for(int k=1;k<=m;++k){
if(k==i)continue;
for(size_t j=0;j<pen[k].size();++j){
bool v = vis[k][j];
if(v)continue;
int p = pen[k][j];
vis[k][j]=true;
p2=max(p2,p+f(i+1,rev));
vis[k][j]=false;
}
}
rev=false;
}
return max(p1,p2);
}
int main(){
freopen("Pens.in","r",stdin);
freopen("Pens.out","w",stdout);
scanf("%d %d %d",&n,&m,&q);
for(int i=0;i<n;++i){
int iii,kkk;
scanf("%d %d",&iii,&kkk);
pen[iii].push_back(kkk);
vis[iii].push_back(false);
}
// for(int i=0;i<=q;++i){
// int sg,oi,xy;
// scanf("%d %d %d",&sg,&oi,&xy);
// if(sg==1){
//
// }
// }
int res=f(1,0);
printf("%d",res);
return 0;
}