一道搜索好题,但是我写的太弱了,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)
{
min=heap[i*2+1].v;

这是一篇关于解决POJ1945问题的博客,作者分享了使用A*算法和哈希、堆以及gcd剪枝策略的过程。尽管初始实现导致了超时错误(tle),但经过改进后,最终实现了0ms的运行时间。作者欢迎读者提供指导和建议。
最低0.47元/天 解锁文章
538

被折叠的 条评论
为什么被折叠?



