题目:https://www.luogu.org/problemnew/show/P1311
看每个位置能否成为咖啡店,然后作为客栈和前面配对即可。
代码如下:
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int const xn=2e5+5,xm=55; int n,k,p,cn[xm],sum[xm],ans; int rd() { int ret=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=0; ch=getchar();} while(ch>='0'&&ch<='9')ret=(ret<<3)+(ret<<1)+ch-'0',ch=getchar(); return f?ret:-ret; } int main() { n=rd(); k=rd(); p=rd(); for(int i=1,col,v;i<=n;i++) { col=rd(); v=rd(); sum[col]++; if(v<=p) { for(int j=0;j<k;j++)cn[j]=sum[j]; ans+=sum[col]-1; } else ans+=cn[col]; } printf("%d\n",ans); return 0; }