BZOJ 1293: [SCOI 2009] 생일 선물
1774 단어 bzoj
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
long long FULL,now;
long long line[1000001];
char c;
inline void read(long long &a)
{
a=0;do c=getchar();while(c<'0'||c>'9');
while(c<='9'&&c>='0')a=(a<<3)+(a<<1)+c-'0',c=getchar();
}
struct Node
{
long long color,place;
inline friend bool operator <(Node a,Node b)
{return a.place<b.place;}
}me[1000001];
long long P_color[80];
int main()
{
long long n,k,i,j,l;
long long con=0;
read(n),read(k);
for(i=1;i<=k;i++)
{
read(j);
for(l=1;l<=j;l++)
{
read(me[++con].place);
me[con].color=i-1;
if(me[con].place==1282)
con++,con--;
}
}
FULL=1ll<<k;
FULL--;
sort(me+1,me+1+n);
long long now=0;
long long r=0;
l=0;
bool pr[100001];
long long ans=1ll<<60;
for(i=1;i<=n;i++)
{
line[++r]=i;
now|=1ll<<me[i].color;
P_color[me[i].color]=me[i].place;
while((P_color[me[line[l]].color]!=me[line[l]].place))l++;
if(now!=FULL)
continue;
if(ans>me[line[r]].place-me[line[l]].place)
{
ans=min(ans,me[line[r]].place-me[line[l]].place);
/*puts("");puts("");puts("");puts("");
for(j=r;j>=l;j--)
if(!pr[me[line[j]].color])
pr[me[line[j]].color]=true,printf("Pla:%I64d Clo:%I64d
",me[line[j]].place,me[line[j]].color);
memset(pr,false,sizeof(pr));
*/
}
}
printf("%lld
",ans);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
bzoj1010 장난감 포장 [결정 단조성 최적화 dp]하나의 모범 문제라고 할 수 있다.우리는 먼저 소박한 dp방정식을 얻을 수 있다. f[i]=min(f[j]+w(j,i)),j∈[0,i). w(j,i)는 j+1~i를 포장하여 운송하는 비용의 시간 복잡도는 O(n2)라...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.