如果直接暴力跑队列,从1开始跑,担心队列炸的话,可以试试限制系统时间。
#define TLE (double)clock() / CLOCKS_PER_SEC <= 0.95
#define TLE (double)clock() / CLOCKS_PER_SEC <= 0.5
for(int i=1;i<=maxn&&TLE;i++)
{
for(int j=1;j<=n;j++)
{
ll flag=a[j]*i*i+b[j]*i+c[j];
q.push(flag);
}
}
一开始拿0.95秒卡的时候,20分,优先队列还是炸了,然后限制到0.5s时,直接过了。