每天两个爆零小技巧

每天两个爆零小技巧,NOIP爆零,不再是梦!
其实是一堆zz错误罢了

Update 7.25

#define maxn 100039
double g[maxn];
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&g[i]);
for(int i=1;i<=n;i++)
printf("%0.d ",g[i]);
#define maxn 100039
struct JTZ{
int a[maxn],m;
}edge[maxn];

Update 7.26

while(!q.empty()){
FLY cur=q.top(); q.pop();
for(int i=head[cur.node];i;i=nex[i])
if(to[i]==n){
if(dist[to[i]]<dist[cur.node]+w[i])
ans[1]=dist[n]=dist[cur.node]+w[i],cnt=1;
else ans[++cnt]=dist[cur.node]+w[i];
q.push((FLY){n,dist[cur.node]+w[i]});
if(cnt>=kk) return;
}
else if(dist[to[i]]<dist[cur.node]+w[i]){
dist[to[i]]=dist[cur.node]+w[i];
q.push((FLY){to[i],g[to[i]]+dist[to[i]]});
}
}
if(dist[to[i]]<dist[cur.node]+w[i])

PS:这里求的是k短路

Update 7.28

void find(int ux,int dx,int uy,int dy,int fx,int fy,int num){
if(ux==dx) return;
if(uy==dy) return;
int mx=(ux+dx)>>1;
int my=(uy+dy)>>1;
if(fx<=mx&&fy<=my){
a[mx][my+1]=num; a[mx+1][my]=num; a[mx+1][my+1]=num;
find(ux,mx,uy,my,fx,fy,num+1);
find(ux,mx,my+1,dy,mx,my+1,num+2);
find(mx+1,dy,uy,my,mx+1,my,num+3);
find(mx+1,dx,my+1,dy,mx+1,my+1,num+4);
}
if(fx<=mx&&fy>my){
a[mx][my]=num; a[mx+1][my]=num; a[mx+1][my+1]=num;
find(ux,mx,uy,my,mx,my,num+1);
find(ux,mx,my+1,dy,fx,fy,num+2);
find(mx+1,dy,uy,my,mx+1,my,num+3);
find(mx+1,dx,my+1,dy,mx+1,my+1,num+4);
}
if(fx>mx&&fy<=my){
a[mx][my]=num; a[mx][my+1]=num; a[mx+1][my+1]=num;
find(ux,mx,uy,my,mx,my,num+1);
find(ux,mx,my+1,dy,mx,my+1,num+2);
find(mx+1,dy,uy,my,fx,fy,num+3);
find(mx+1,dx,my+1,dy,mx+1,my+1,num+4);
}
if(fx>mx&&fy>my){
a[mx][my]=num; a[mx][my+1]=num; a[mx+1][my]=num;
find(ux,mx,uy,my,mx,my,num+1);
find(ux,mx,my+1,dy,mx,my+1,num+2);
find(mx+1,dy,uy,my,mx+1,my,num+3);
find(mx+1,dx,my+1,dy,fx,fy,num+4);
}
return;
}

PS:注意num数组的迭代。

a[mx][my+1]=++cnt; a[mx+1][my]=cnt; a[mx+1][my+1]=cnt;

写成

a[mx][my+1]=++cnt; a[mx+1][my]=++cnt; a[mx+1][my+1]=++cnt;

Update 7.31

typedef long long ll;
int f[39];
void init(){
f[0]=1;
for(int i=1;i<=35;i++)
f[i]=f[i-1]<<1;
}
ll f[39];
#define pow2(x) f[x]
int cnt=pow2(n-1)*pow2(n-1);
十年OI一场空,不开longlong见祖宗

Update 8.3

NODE x=find(n-1,(ll)num%(ll)cnt);

PS:你有考虑过整除的时候吗?

Update 8.7

struct JTZ{
int x,y;
bool operator < (const JTZ x) const{
if(this->x == x.x) return this->y<=x.y;
return this->x < x.x;
}
}tmp;
map<JTZ,bool> f;

多了一个=...

for(int i=1;i=n;i++)

Update:8.13

for(int i=1;i<=n;i++)
for(int i=1;i<=n;i++)
inline int read(){
char c=getchar();
int sum=0;
while((c>'9'||c<'0')&&c!='-') c=getchar();
while('0'<=c&&c<='9'){
sum=(sum<<1)+(sum<<3)+(c^48);
c=getchar();
}
return sum;
}

PS:输入负数怎么办?

Update:8.14

printf("%lld",&a[h+1][0]);

Update:8.17

int maxx=-1;
for(int i=0;i<=m;i++)
maxx=max(f[n][i][i+1][1],f[n][i][i+1][0]);

Update:8.21

for(i=0;i<=m;i++){
ans=min(ans,f[n][i][1]);
ans=min(ans,f[n][1][0]);
}

Update:9.11

for(int i=1;i<=n;i++){
if(a[i]*(sum[l[i]+1 -1]-sum[r[i]-1]) > maxx)
maxx=a[i]*(sum[l[i]+1 -1]-sum[r[i]-1]);
}

前缀和小减大...

Update:11.2

很久没有更了...

for(int i=1;i<=n;i++)
for(int j=i+1;i<=n;i++)

经 典 错 误

Update:2021.11.4

void down(int rt,int ln,int rn){
f1[rt<<1]*=f2[rt]; f1[rt<<1|1]*=f2[rt];
f2[rt<<1]*=f2[rt]; f2[rt<<1|1]*=f2[rt<<1];//<-
s[rt<<1]*=f2[rt]; s[rt<<1|1]*=f2[rt];
f1[rt<<1]+=f1[rt]; f1[rt<<1|1]+=f1[rt];
s[rt<<1]+=f1[rt]*ln; s[rt<<1|1]+=f1[rt]*rn;
f1[rt]=0; f2[rt]=1; return;
}

好像有一行不大一样...(线段树新写法

本文不定期更新……

posted @   jiangtaizhe001  阅读(83)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示