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

2025-11-17

CF

Problem - 839C - Codeforces(DFS)(1500)(期望)

求期望dp
即求1的(所有孩子的期望+1)的和,除以孩子数量

#include <bits/stdc++.h>
using namespace std;
#define LL long long
const LL mod = 998244353;
const int N=1e5+10;
double dp[N];
vector<int> e[N];void dfs(int u,int fa){int cnt = 0;for (int i = 0; i < e[u].size();i++){int v = e[u][i];if(v==fa)continue;dfs(v, u);dp[u] += (dp[v] + 1.0);cnt++;}if(cnt)dp[u] /= (double)cnt;
}int main()
{int n,u,v;cin >> n;for (int i = 1; i < n;i++){cin >> u >> v;e[u].push_back(v);e[v].push_back(u);}dfs(1, 0);printf("%.15lf", dp[1]);
}
flag

等字符串专题学完,数论整理好之后,就去学期望dp(kuangbin)!!!
【原创】概率DP总结 by kuangbin - kuangbin - 博客园

Problem - 1789C - Codeforces

这题要求m+1个数组,两两拼接后,不同元素的数量
思路是求出m+1个数组中,每个数字x,cnt[x]的值
然后计算

  • 含x的和和不含x的结合cnt[x]*(m+1-cnt[x])
  • 两个都有x的结合cnt[x]*(cnt[x]-1)/2

cnt[x]的计算,用前缀和的思想

#include <bits/stdc++.h>
using namespace std;
#define LL long long
const LL mod = 998244353;
const int N=2e5+10;
LL a[N], cnt[N*2];void solve()
{int n,m,p,v;LL ans = 0;cin >> n >> m;for (int i = 1; i <= n+m;i++){cnt[i] = 0;}for (int i = 1; i <= n; i++){cin >> a[i];cnt[a[i]]++;}for (int i = 1; i <= m;i++){cin >> p >> v;cnt[a[p]] += i - 1;cnt[v] -= i - 1;a[p] = v;}for (int i = 1; i <= n;i++){cnt[a[i]] += m;}for (int i = 1; i <= n + m;i++){ans += cnt[i] * (m + 1 - cnt[i]);ans += cnt[i] * (cnt[i] - 1) / 2;}cout << ans << endl;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T;cin >> T;while (T--){solve();}
}

Problem - 1536C - Codeforces

题意:要求找每个前缀子串的最大可分割组数,使得组数满足D:K与子串比例相等

  • cntD与cntK互质,只有一组,它本身
  • else 求tmp=gcd(cntD,cntK),{d,k}出现的数量即可分割的组数
#include <bits/stdc++.h>
using namespace std;
#define LL long long
const LL mod = 998244353;
const int N=2e5+10;
LL gcd(LL a,LL b){return b?gcd(b,a%b):a;
}
LL lcm(LL a,LL b){return a/gcd(a,b)*b;
}void solve()
{int n;cin >> n;string s;cin >> s;int cd = 0, ck = 0,d,k;map<pair<int, int>, int> mp;for (int i = 0; i < n;i++){if(s[i]=='D'){cd++;}else{ck++;}int tmp = gcd(cd, ck);d = cd, k = ck;d /= tmp, k /= tmp;mp[{d, k}]++;cout << mp[{d, k}] << " ";}cout << endl;
}int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int T;cin >> T;while (T--){solve();}
}

Problem - 74B - Codeforces(模拟)(注意输入)

[!warning] getline

  1. cin >> n >> l >> r; 读取 3 1 2,缓冲区剩余 \n(回车符)。
  2. getline(cin, s1) 读取到\n,将s1设为""(空字符串)。即此时getline没有读入字符串,所以cin和getline最好不要混用
#include <bits/stdc++.h>
using namespace std;
#define LL long long
const LL mod = 998244353;
const int N=2e5+10;int main()
{int n,l,r;int flag;cin >> n >> l >> r;string s1,s;cin >> s1 >> s1;cin >> s;if(s1[0]=='h')flag = -1;elseflag = 1;int ans = 0;for (int i = 0; i < s.size();i++){ans++;if(r==1)flag = 1;if(r==n)flag = -1;if(s[i]=='1')l = r;r += flag;if(l==r)l += flag;if(l==0||l==n+1){cout << "Controller" << " " << ans << endl;return 0;}}cout << "Stowaway\n";
}
http://www.jsqmd.com/news/43023/

相关文章:

  • 九成九新自用C#入门文档
  • 商场展览车生产厂家十大排名及选购推荐,航利通达网红礼盒拖车公司,透明车厢生产厂家,车载展柜公司十大权威排行,商场展览车公司十大排名
  • Flask+Celery+Blueprint
  • 102302109-胡贝贝-作业3
  • hadoop linux 安装
  • 2025最新展柜设计公司推荐,展柜制作公司,展台源头厂家,烤漆展柜十大品牌推荐榜,家纺柜台供应厂家十大排行榜:梵之宇装饰推荐
  • 团队技术资产建设:从散兵游勇到标准化作战
  • 2025年11月学习机榜单:打破智商税偏见,十大提分机型实证推荐
  • 解决罗技M590右键必须用力才能使用的问题
  • 悼念故友
  • 题解:uoj632【UR #21】挑战最大团
  • [CSP-S 2025] 员工招聘 / employ
  • 20232410 2025-2026-1 《网络与系统攻防技术》实验六实验报告
  • 2025上海商铺办公室装修公司推荐指南:业态适配与TOP10实力榜
  • FastAPI Test Project
  • React Scheduler(调度器)
  • 2025年11月学习机榜单:双线提分机型领衔,十大高性价比之选
  • Day41(11)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project02\tlias-web-management
  • vue2和vue3声明式和命令时的区别
  • WPS office 2023专业增强版 无限用v12.8 永久激活下载及安装使用教程
  • 3D Dynamic Scene Graph - MKT
  • 3D 文件类型,怎么在线查看编辑STL/AMF/OBJ/stp/fbx/ply转换
  • 022304105叶骋恺数据采集第三次作业
  • AI故事生成平台 -
  • nginx rewrite 状态码区别
  • GS4:首个泛化高斯溅射语义SLAM框架,十倍效率三维建图 - MKT
  • 2025 ICPC 南京区域赛 CFGIJ
  • 关于一种滚动数组的错误实现方式
  • React中Class组件和Function组件有何区别
  • 【数学】组合数学(更新中)