Denso Create Programming Contest 2024(AtCoder Beginner Contest 361)
1.高一上七月上旬日记2.牛客周赛 Round 49
3.Denso Create Programming Contest 2024(AtCoder Beginner Contest 361)
4.NOIP2024模拟15.NOIP2024模拟26.高一上七月中旬日记7.NOIP2024模拟38.CSP提高组模拟19.暑假集训CSP提高模拟110.暑假集训CSP提高模拟211.暑假集训CSP提高模拟312.暑假集训CSP提高模拟413.高一上七月下旬日记14.暑假集训 加赛115.暑假集训CSP提高模拟516.暑假集训CSP提高模拟617.加赛218.暑假集训CSP提高模拟719.暑假集训CSP提高模拟820.暑假集训CSP提高模拟921.暑假集训CSP提高模拟1022.暑假集训CSP提高模拟1123.暑假集训CSP提高模拟12Denso Create Programming Contest 2024(AtCoder Beginner Contest 361)
[ABC361A] Insert
-
循环结构。
点击查看代码
int a[200]; int main() { int n,k,x,i; cin>>n>>k>>x; for(i=1;i<=n;i++) { cin>>a[i]; cout<<a[i]<<" "; if(i==k) { cout<<x<<" "; } } return 0; }
[ABC361B] Intersection of Cuboids
-
不会立体几何。
-
设
表示 被包含在几个长方体内。最后判断是否存在一个点 使得 。 -
bitset
压一下,时空复杂度为 ,因为是 和 ,所以可以过。点击查看代码
bitset<1010>vis[2][1010][1010]; int main() { int a,b,c,d,e,f,i,j,k,h; for(i=0;i<=1;i++) { cin>>a>>b>>c>>d>>e>>f; for(j=a;j<=d;j++) { for(k=b;k<=e;k++) { for(h=c;h<=f;h++) { vis[i][j][k][h]=1; if((vis[i][j][k][h]==1&&vis[i^1][j][k][h]==1)&&(j>=1&&vis[i][j-1][k][h]==1&&vis[i^1][j-1][k][h]==1)&&(k>=1&&vis[i][j][k-1][h]==1&&vis[i^1][j][k-1][h]==1)&&(h>=1&&vis[i][j][k][h-1]==1&&vis[i^1][j][k][h-1]==1)) { cout<<"Yes"<<endl; return 0; } } } } } cout<<"No"<<endl; return 0; }
[ABC361C] Make Them Narrow
-
将
升序排序后,枚举这个位置作为最大值时最小值是几。 -
最终,有
即为所求。点击查看代码
ll a[200010]; int main() { ll n,k,ans=0x7f7f7f7f,i; cin>>n>>k; for(i=1;i<=n;i++) { cin>>a[i]; } sort(a+1,a+1+n); for(i=n-k;i<=n;i++) { ans=min(ans,a[i]-a[k-(n-i)+1]); } cout<<ans<<endl; return 0; }
[ABC361D] Go Stone Puzzle
- 傻逼搜索,不想写了。
[ABC361E] Tree and Hamilton Path 2
-
感觉类似 HDU2196 Computer ,赛时一开始以为是简单树形
,后来发现需要换根,接着一直在想换根,推到最后还差一个式子没推出来。 -
如果要求最终回到起点,则每条边均会经过两次,搜索顺序不影响最终答案。而最终不要求回到起点,搜索顺序会影响答案,其中找到最长的一条路径(直径),减去直径长度即可。
点击查看代码
struct node { ll nxt,to,w; }e[400010]; ll head[400010],f[400010],g[400010],cnt=0,len=0; void add(ll u,ll v,ll w) { cnt++; e[cnt].nxt=head[u]; e[cnt].to=v; e[cnt].w=w; head[u]=cnt; } void dfs(int x,int fa) { for(int i=head[x];i!=0;i=e[i].nxt) { if(e[i].to!=fa) { dfs(e[i].to,x); if(f[e[i].to]+e[i].w>f[x]) { g[x]=f[x]; f[x]=f[e[i].to]+e[i].w; } else { g[x]=max(g[x],f[e[i].to]+e[i].w); } } } len=max(len,f[x]+g[x]); } int main() { ll n,u,v,w,ans=0,i; cin>>n; for(i=1;i<=n-1;i++) { cin>>u>>v>>w; ans+=2*w; add(u,v,w); add(v,u,w); } dfs(1,0); cout<<ans-len<<endl; return 0; }
[ABC361F] x = a^b
-
对应 luogu P9118 [春季测试 2023] 幂次 中
的情况,赛时直接贺的以前代码。 -
等价于计算
。 -
当
时,有 即为所求。 -
当
时,容斥一下,有 即为所求。枚举底数和指数判断依次判断。 -
当
时,枚举指数 和底数 ,依次判断。点击查看代码
map<ll,bool>vis; int main() { ll n,k,ans=0,sum3=0,sum6=0,mi,c,sqrtmi,i; cin>>n; k=2; if(k==1) { cout<<n<<endl; } else { for(i=2;i*i*i<=n;i++) { mi=i*i; c=2; while(mi<=n/i) { mi*=i; c++; if(c>=k&&vis.find(mi)==vis.end()) { vis[mi]=1; sum3++; sqrtmi=sqrtl(mi); sum6+=(sqrtmi*sqrtmi==mi); } } } if(k==2) { cout<<((ll)(sqrtl(n)))+sum3-sum6<<endl; } else { cout<<sum3+1<<endl; } } return 0; }
[ABC361G] Go Territory
总结
- 开题顺序:
- 模拟赛和比赛题要记得改。
本文来自博客园,作者:hzoi_Shadow,原文链接:https://www.cnblogs.com/The-Shadow-Dragon/p/18288196,未经允许严禁转载。
版权声明:本作品采用 「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0) 进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏