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

CSP-S 提高组 2025 初赛试题解析(第三部分:完善程序题(二)(39-43))

参考程序:

#include <bits/stdc++.h>
using namespace std;
long long comb(int w, int i) {if (i < 0 || i > w) {return 0;}long long res = 1;for (int t = 1; t <= i; ++t) {// 逐步乘除以避免中间溢出res = res * (w - t + 1) / t;}return res;
}// 计算长度为w、1的个数<=k的码字总数 
long long count_patterns(int w, int k) {long long total = 0;for (int t = 0; t <= min(w,k); ++t) {total += comb(w, t);}return total;
}//抽象测试接口 
int test_subset(const vector<vector<int>>& plan) ;int solve(int n, int k) {// ===第一步:求最小w==== int w = 1;while ( count_patterns(w,k) < n) {++w;// === ① 位置填空}cout << w << endl;// ===第二步:生成测试方案=== vector<vector<int>> code(n, vector<int>(w, 0));int idx = 0;for (int ones = 0; ones <= k && idx < n; ++ones) {// 初始化 bits:前 ones 个为 1,后面为 0,形如 [1,1,..,1,0,0,..,0]vector<int> bits(w, 0);fill(bits.begin(),bits.begin()+ones,1);// 用 do...while + prev_permutation 枚举该 ones 下的所有组合// === ② 位置填空:使用 prev_permutation(bits.begin(), bits.end()) ===do {for (int b = 0; b < w; ++b){code[idx][b] = bits[b];}++idx;if (idx >= n){break;}} while (prev_permutation(bits.begin(), bits.end()));}vector<vector<int>> plan(w);for (int i = 0; i < w; ++i) {for (int j = 0; j < n; ++j) {// === ③ 位置填空:判断第 j 条生产线在第 i 轮是否参与发货,用 code[j][i] == 1 if (code[j][i] == 1) plan[i].push_back(j);}}//===第三步:调用测试接口===int signature = test_subset(plan) ;//===第四步:结果解码=== vector<int> sig_bits(w, 0);for (int i = 0; i < w; ++i) {// === ④ 位置填空:从 signature 中取第 i 位,使用 (signature >> i) & 1 ===if ( (signature >> i) & 1 ) sig_bits[i] = 1;}for (int j = 0; j < n; ++j) {// === ⑤ 位置填空:用 vector 比较 code[j] == sig_bits if (code[j] == sig_bits) return j;}    
}int main() {int n, k;cin >> n >> k; int ans = solve(n,k);cout << ans<<endl;return 0;
}

http://www.dtcms.com/a/423632.html

相关文章:

  • 前端实战:基于React Hooks与Ant Design V5的多级菜单系统
  • 单片机OTA升级:高效无线更新的秘密
  • 社区平安建设基层网站重庆企业网站建设官网
  • 嵌入式学习笔记4.STM32中断系统及外部中断EXTI
  • 手机网站模板大全上海市公共招聘网官网
  • Python爬虫实战:获取国家天文数据中心公开的观测信息与数据分析
  • 中核西北建设集团网站苏州手机社区网站建设
  • 网站建设皿金手指谷哥壹柒小米发布会2022
  • 实战:用Scrapy框架搭建第一个爬虫项目
  • Kubernetes 的本质:一个以 API 为中心的“元操作系统”
  • 网站设计的公司选哪家陕西建设网官网登录
  • 基于EasyExcel、FastExcel封装spring boot starter
  • Arpg第五节——方法
  • 太原网站搭建推广服装设计网站模板下载
  • 人工智能-机器学习day3
  • 第四部分:VTK常用类详解(第113章 vtkTensorGlyph张量符号化类)
  • 中国平安官方网站心态建设课件做网站的学校
  • 翻译插件分享
  • 网页设计广州网站购物型网站用dw做
  • 水平扩展与垂直扩展
  • React基础到进阶
  • cvat使用
  • 东莞小学网站建设空间设计说明怎么写
  • 万网网站后台管理系统网站策划招聘
  • 网站首页静态化代码网站建设架构选型
  • Stable Diffusion DALL-E Imagen背后共同套路
  • 网上商城html模板无锡seo关键词排名
  • 天津 网站策划湛江专门做网站
  • 【Linux】进程的概念和状态
  • 【完整源码+数据集+部署教程】无人机场景城市环境图像分割系统: yolov8-seg-timm