一道搜索好题,但是我写的太弱了,tle,比如跑17530这几个数据有问题。
最终交表0ms。
作文以记之。
希望大家多多指教。
#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
struct data {
int a,b,c,v;
}k,heap[1000000];
int tot,first[1000000],x,num;
struct hash {
int a,b,next;
}g[1000000];
void up(int i) {
while (i>1) {
if (heap[i].v<heap[i/2].v) {
swap(heap[i],heap[i/2]);
i/=2;
}
else break;
}
}
void down() {
swap(heap[1],heap[num]);
num--;
int i=1;
while (i*2<=num) {
int min=heap[i].v;
int mini=i;
if (heap[i*2].v<min)
{
min=heap[i*2].v;
mini=2*i;
}
if (heap[i*2+1].v<min && i*2+1<=num)
{