Day6上 括号匹配专项
滑稽的题
T1

#include<iostream> #include<cstring> #include<queue> #include<algorithm> #include<cstdio> #include<cmath> #include<ctime> using namespace std; int n; int a,b,x; int main() { // freopen("book.in","r",stdin); // freopen("bok.out","w",stdout); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&x); if(x==5) { a++; continue; } if(x==10) { if(a) { a--; b++; continue; }else { printf("No\n"); return 0; } } if(x==20) { if(a&&b) { a--; b--; continue; } if(a>=3&&(!b)) { a-=3; continue; } printf("No\n"); return 0; } } printf("YES\n"); return 0; }
奇怪我手动测得都对,而且超时也不太可能吧。? 待解决。
模拟白
T2
#include<iostream> #include<cstring> #include<queue> #include<algorithm> #include<cstdio> #include<cmath> #include<ctime> using namespace std; const int N=1e6+100; int n,m; int sum[N],a[N]; bool is[N]; int main()//又来模拟? { freopen("program.in","r",stdin); freopen("program.out","w",stdout); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); scanf("%d",&m); for(int i=1,x;i<=m;i++) { scanf("%d",&x); is[x]=1; } for(int i=1;i<=n;i++) { if(is[i]) sum[a[i]]--; else sum[a[i]]++; if(sum[a[i]]<0) { printf("NO\n"); return 0; } } for(int i=1;i<=n;i++) { if(sum[i]<0||(sum[i]%2)) { printf("NO\n"); return 0; } sum[i]/=2; } for(int i=n;i>=1;i--) if(!is[i])//要不是掉下这一步我就可能A了。 { if(sum[a[i]]) { is[i]=1; sum[a[i]]--; } } for(int i=1;i<=n;i++) { if(is[i]) printf("-%d ",a[i]); else printf("+%d ",a[i]); } return 0; }
括号翻转,站。
区间dp。
但我觉得,模拟就ok。
T3

#include<iostream> #include<cstring> #include<queue> #include<algorithm> #include<cstdio> #include<cmath> #include<ctime> using namespace std; const int N=14; int h[N],nex[N*2],to[N*2],w[N*2],cnt; int n,m,q; int x,y,z; void add() { scanf("%d%d%d",&x,&y,&z); to[++cnt]=y,nex[cnt]=h[x],h[x]=cnt,w[cnt]=z; to[++cnt]=x,nex[cnt]=h[y],h[y]=cnt,w[cnt]=z; } int kid[N][2]; bool vis[N]; int A,B,flag; void dfs(int x) { if(x==B) { bool is=1; for(int i=1;i<=10;i++) { if(kid[i][0]&&(!kid[i][1])) is=0; if(kid[i][1]&&(!kid[i][0])) is=0; if(abs(kid[i][0]-kid[i][1])%2) is=0; } if(is) flag=1; return ; } for(int i=h[x],v;i;i=nex[i]) if(!vis[to[i]]) { vis[to[i]]=1; if(w[i]>0) kid[w[i]][1]++; else kid[-w[i]][0]++; dfs(to[i]); vis[to[i]]=0; if(w[i]>0) kid[w[i]][1]--; else kid[-w[i]][0]--; } } int main() { freopen("maze.in","r",stdin); freopen("maze.out","w",stdout); scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) add(); scanf("%d",&q); for(int i=1;i<=q;i++) { scanf("%d%d",&A,&B); flag=0; vis[A]=1; dfs(A); if(flag) printf("YES\n"); else printf("NO\n"); } return 0; }
预处理Floyed dp

#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cstdlib> using namespace std; int n,m; int g[105][105][40],q[105*105*40][3],t,x,y,z; int main() { scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { scanf("%d%d%d",&x,&y,&z); if(!z) { if(z<0) z=-z; else z+=10; g[x][y][z]=g[y][x][z]=1; }else { g[x][y][z]=g[y][x][z]=1; t++;q[t][0]=x,q[t][1]=y,q[t][2]=0; t++;q[t][0]=y,q[t][1]=x,q[t][0]=0; } } for(int i=1;i<=n;i++) { t++; q[t][0]=i; q[t][1]=i; q[t][2]=0; } for(int s=1;s<=t;s++) { int x=q[s][0]; int y=q[s][1]; int kid=q[s][2]; if(!kid) for(int i=1;i<=n;i++) if(g[i][x][kid-10]==1&&g[i][y]==0) { g[i][y][0]=1; t++; q[t][0]=i; q[t][1]=y; q[t][2]=0; } else for(int i=1;i<=10;i++) { if(g[i][x]&&(!g[i][y])) { g[i][y]=1; t++; q[t][0]=i; q[t][1]=y; q[t][2]=0; } if(g[y][i]&&(!g[x][i])) { g[x][i]=1; t++; q[t][0]=x; q[t][1]=i; q[t][2]=0; } for(int j=1;j<=10;j++) if(g[y][i][j]&&(!g[x][i][j+20])) { g[x][i][j+20]=1; t++; q[t][0]=x; q[t][1]=i; q[t][2]=j+20; } } } int q; scanf("%d",&q); while(q--) { scanf("%d%d",&x,&y); if(g[x][y][0]) printf("YES\n"); else printf("NO\n"); } return 0; }
【推荐】国内首个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