社区讨论
27分,玄学贪心
P1233[ICPC 2001 Taejon R] 木棍加工参与者 1已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mhizi0kc
- 此快照首次捕获于
- 2025/11/03 18:15 4 个月前
- 此快照最后确认于
- 2025/11/03 18:15 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
const int N=5005;
int n;
struct node{
int l,w,pos;
}a[N],x[N],y[N];
bool cmp1(node x,node y){
return x.l<y.l;
}
bool cmp2(node x,node y){
return x.w<y.w;
}
bool cmp3(int x,int y){
return x>y;
}
int sum[N];
int main(){
/*
freopen("strick.in","r",stdin);
freopen("strick.in","w",stdout);
致敬小木棒(strick)
*/
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].l>>a[i].w;
a[i].pos=i;
x[i]=a[i];
y[i]=a[i];
}
sort(x+1,x+n+1,cmp1);
sort(y+1,y+n+1,cmp2);
int cnt1=0;
for(int i=1;i<=n;i++){
cnt1+=(x[i].l<x[i+1].l||x[i].w<x[i+1].w)?1:0;
}
int cnt2=0;
for(int i=1;i<=n;i++){
cnt2+=(y[i].l<y[i+1].l||y[i].w<y[i+1].w)?1:0;
}
if(ceil(min(cnt1,cnt2)/2)){
cout<<ceil(min(cnt1,cnt2)/2);
}else{
cout<<1;
}
return 0;
}
我觉得黄不用写dp
(其实懒得写),贪心玄学了一下,给的样例是一个l,w单调性就可以求得最优解,但是样例4好像卡了,不知道样例4该怎么贪
样例4
输入样例
3
1 3 2 2 3 1
输出样例
3
其实应该问题不大,希望有人回复qwq
回复
共 3 条回复,欢迎继续交流。
正在加载回复...