当前位置: 首页 > news >正文

AT_abc442 - crazy-

F 简单dp优化

A

#include<bits/stdc++.h>
// #define int long long
using namespace std;signed main()
{string s;int ans=0;cin>>s;for(int i=0;i<s.size();i++) ans+=(s[i]=='i' || s[i]=='j');cout<<ans<<endl;return 0;
}

B

#include<bits/stdc++.h>
// #define int long long
using namespace std;signed main()
{int q;int vol,play;vol=play=0;cin>>q;while(q--){int opt;cin>>opt;if(opt==1) vol++;else if(opt==2) vol=max(vol-1,0);else play^=1;cout<<(play && vol>=3?"Yes":"No")<<endl;}return 0;
}

C

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int Maxn=2e5+10;
int a[Maxn];
int n,m,ans;
signed main()
{cin>>n>>m;for(int i=1;i<=n;i++) a[i]=n-1;for(int i=1;i<=m;i++){int x,y;cin>>x>>y;a[x]--; a[y]--;}for(int i=1;i<=n;i++) cout<<a[i]*(a[i]-1)*(a[i]-2)/6<<" ";cout<<endl;return 0;
}

D

#include<bits/stdc++.h>
// #define int long long
using namespace std;
const int Maxn=2e5+10;
int c[Maxn];
int n,q;
int a[Maxn];
int lowbit(int x) {return x&-x;}
void add(int x,int y)
{while(x<=Maxn-10){c[x]+=y;x+=lowbit(x);}
}
int get(int x)
{int re=0;while(x){re+=c[x];x-=lowbit(x);}return re;
}
int query(int l,int r) {return get(r)-get(l-1);}
signed main()
{cin>>n>>q;for(int i=1;i<=n;i++){cin>>a[i];add(i,a[i]);}while(q--){int opt,x,l,r;cin>>opt;if(opt==1){cin>>x;add(x,-a[x]);add(x,a[x+1]);add(x+1,-a[x+1]);add(x+1,a[x]);swap(a[x],a[x+1]);}else{cin>>l>>r;cout<<query(l,r)<<endl;}}return 0;
}

F

假设第 \(i\) 行的前 \(a_i\) 个格子最终被染成了白色,显然 \(a_i\) 应该单调不增。

\(dp[i][j]\) 表示第 \(i\) 行将前 \(j\) 个涂白的方案数,转移显然。

#include<bits/stdc++.h>
// #define int long long
using namespace std;
int n,ans;
char c[5010][5010];
int dp[5010][5010];
int mn[5010][5010];
int cnt[5010][5010];
signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){cin>>c[i][j];cnt[i][j]=cnt[i][j-1]+(c[i][j]=='.');}for(int i=1;i<=n;i++){for(int j=0;j<=n;j++){dp[i][j]=mn[i-1][j]+(j-cnt[i][j])+(cnt[i][n]-cnt[i][j]);}mn[i][n+1]=1e9;for(int j=n;j>=0;j--) mn[i][j]=min(dp[i][j],mn[i][j+1]);}ans=1e9;for(int i=0;i<=n;i++) ans=min(ans,dp[n][i]);cout<<ans<<endl;return 0;
}
http://www.jsqmd.com/news/298929/

相关文章:

  • AT_abc329_f Colored Ball - crazy-
  • 【计算机毕业设计案例】基于springboot的社区居民健康管理系统(程序+文档+讲解+定制)
  • FastAPI系列(09):文件上传
  • 7款AI论文写作工具实测:轻松搞定毕业论文,自动匹配真实参考文献!
  • 【机器学习深度学习】强化学习与监督学习SFT、RL、RLHF、PPO、DPO - 实践
  • 2026年塑石假山修建优质厂家推荐指南
  • 闲置携程任我行礼品卡回收变现,认准京顺回收
  • FastAPI系列(08):form表单数据
  • 富强
  • 多无人机协同侦查、任务分配与智能决策仿真解决方案
  • 民主
  • 2025年度盘点:这些板材货架厂家正在引领市场,驶入式货架/重型模具货架/手摇式板材货架,板材货架厂商口碑推荐
  • 导师严选2026 AI论文工具TOP8:本科生毕业论文全场景测评
  • 面试-Decoder-Only生成模型
  • 【毕业设计】基于springboot的人脸识别员工考勤管理系统(源码+文档+远程调试,全bao定制等)
  • 亲测好用!继续教育TOP8一键生成论文工具测评
  • 改变人生的方式
  • FastAPI系列(07):请求体数据
  • 别只盯着那只“鹦鹉”了!Claude3.7与Sora2才是真正的生产力怪兽
  • 2026链条直销厂家榜:获取优质厂家联系方式,链条/非标链条/不锈钢链条/工业链条,链条源头厂家推荐排行
  • Agent Skill:新一代 AI 设计模式的原理、实践与 MCP 协同应用解析
  • Git行尾符战争:如何彻底解决CRLF与LF的跨平台噩梦
  • hot100 230.二叉搜索树中第K小的元素
  • hot100 199.二叉树的右视图
  • hot100 108.将有序数组转换为二叉搜索树
  • hot100 98.验证二叉搜索树
  • 做久坐提醒+拉伸指导工具,设定工作时长,久坐超一小时自动提醒,推送三分钟简易拉伸动作(图文步骤),记录每日拉伸次数。
  • Java毕设项目:基于springboot的社区健康管理系统(源码+文档,讲解、调试运行,定制等)
  • Java计算机毕设之基于springboot的社区健康管理系统基于SpringBoot的社区医疗健康管理系统(完整前后端代码+说明文档+LW,调试定制等)
  • markdown博客发布多平台实战指南