Day4下午
不会啊。
T1
找规律: 辗转相减,加速。

#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<queue> #include<cmath> using namespace std; long long a,b,c,ans=2; int main() { freopen("seq.in","r",stdin); freopen("seq.out","w",stdout); scanf("%lld%lld",&a,&b); if(abs(a-b)==1) { cout<<(a+1); return 0; } if(a<b) { c=a; a=b; b=c; } while(a&&b) { if(b<a-b) b=a-b; c=a-b; if(c<b) {a=b;b=c;} else if(c>b) {a=c;} else if(b==c) {a=c;ans--;} ans++; if(b==1) { cout<<ans+a-1<<endl; return 0; } } cout<<ans<<endl; return 0; }

#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<queue> #include<cmath> using namespace std; long long a,b,c,ans; int main() { freopen("seq.in","r",stdin); freopen("seq.out","w",stdout); scanf("%lld%lld",&a,&b); if(a<b) { c=a; a=b; b=c; } c=a%b; while(c) { ans+=a/b; a=b;b=c;c=a%b; } ans+=a/b; ans++; cout<<ans<<endl; return 0; }
T2
好写的一种方法,直接建一棵最大生成树。

#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<queue> #include<cmath> #include<ctime> using namespace std; const int N=100009; struct node{ int x,y,z; }a[N*2]; int f[N],size[N],last[N]; int n,m; long long ans[N]; bool cmp(node v,node u) { return v.z>u.z;} int find(int x) { while(x!=f[x]) x=f[x]=f[f[x]]; return x; } int main() { freopen("car.in","r",stdin); freopen("car.out","w",stdout); scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z); sort(a+1,a+1+m,cmp); for(int i=1;i<=n;i++) f[i]=i,size[i]=1,last[i]=1; int f1,f2,i=2; f1=find(a[1].x);f2=find(a[1].y); if(f1!=f2) f[f1]=f2,size[f2]+=size[f1]; while(i<=m+1) { while(a[i].z==a[i-1].z) { f1=find(a[i].x); f2=find(a[i].y); if(f1!=f2) f[f1]=f2,size[f2]+=size[f1]; i++; } for(int j=1;j<=n;j++) { ans[j]+=(1LL*size[find(j)]-1LL*last[j])*(1LL*size[find(j)]-1LL*last[j]); last[j]=size[f[j]]; } f1=find(a[i].x);f2=find(a[i].y); if(f1!=f2) f[f1]=f2,size[f2]+=size[f1]; i++; } for(int i=1;i<=n;i++) printf("%lld ",ans[i]); cout<<'\n'<<clock(); return 0; }
我自己测得50%的数据试过的,跑的贼快。不知道哪错了。
反正我的做法是O(nm)的不是正解。
正解是见一棵最大生成树,
T3
部分分dp
很难noi思维难度
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App