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

CSPOJ:1561: 【提高】买木头

样例输入:

10 10000 8 20

样例输出:

201

代码:

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;int main() {int n, m, l, s;cin >> n >> m >> l >> s;vector<pair<int, int>> v;v.push_back({l, s});for (int i = 1; i < n; ++i) {int a = v[i-1].first, b = v[i-1].second;int c = (a * 37011 + 10193) % 10000 + 1;int d = (b * 73011 + 24793) % 100 + 1;v.push_back({c, d});}int L = 1, R = 0;for (auto &p : v) R = max(R, p.first);int ans = 0;while (L <= R) {int M = (L + R) / 2;long long t = 0;for (auto &p : v) {t += (long long)(p.first / M) * p.second;if (t >= m) break;}if (t >= m) {ans = M;L = M + 1;} else {R = M - 1;}}cout << ans << endl;return 0;
}

流程图:

┌───开始───┐│
┌─────▼─────┐
│ 输入n,m,l,s │
└─────┬─────┘│
┌─────▼─────┐
│ v初始化:加(l,s) │
└─────┬─────┘│
┌─────▼─────┐
│ 循环生成v剩余元素 │
│(i=1到n-1) │
└─────┬─────┘│
┌─────▼─────┐
│ 设L=1,R=v中最大first值 │
└─────┬─────┘│
┌─────▼─────┐       ┌───────────┐
│ L <= R?   ├─是────┤ M=(L+R)/2 │
└─────┬─────┘       └─────┬─────┘│                   ││           ┌───────▼───────┐│           │ 计算t=Σ(p.first/M * p.second) ││           └───────┬───────┘│                   ││           ┌───────┴───────┐│           │ t >= m?       ││           └───┬─────┬─────┘│               │     │
┌─────┴─────┐   ┌─────▼─────┐   ┌─────▼─────┐
│ 结束循环  │   │ ans=M     │   │ R=M-1     │
│ 输出ans   │   │ L=M+1     │   │           │
└───────────┘   └───────────┘   └───────────┘

制作不易点个赞吧

谢谢!

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

相关文章:

  • 智能小e-智能办公文档
  • OCAD for Orienteering 20Crack 定向越野:工作流程
  • Chrome插件开发【Service Worker练手小项目】
  • MySQL 运算符
  • [CSP-J 2021] 小熊的果篮
  • Oracle数据库Library cache lock阻塞问题排查
  • 银河麒麟V10配置KVM的Ubuntu虚机GPU直通实战
  • AI测试平台实战:深入解析自动化评分和多模型对比评测
  • 人工智能-python-机器学习-逻辑回归与K-Means算法:理论与应用
  • 机器学习之DBSCAN
  • Redis中的AOF原理详解
  • 【unity实战】在Unity中实现不规则模型的网格建造系统(附项目源码)
  • CI/CD的持续集成和持续交付
  • 变频器实习DAY26 CDN 测试中心使用方法
  • 标准IO详解(fgets、gets、fread、fwrite、fseek 等应用)
  • ubuntu24.04设置登陆背景图片
  • 【openEuler构建测试环境或部署嵌入式系统】openEuler生态扩容新路径:内网穿透工具cpolar助力多场景落地
  • 服务器使用ADB调试手机
  • Redis 数据结构及特点
  • 计算机网络(一)——TCP
  • JavaScript Const的基础使用
  • QML的中英文翻译
  • 快速搭建前端playwright工程
  • SpringAI实现Reread(Advisor)
  • DNS核心概念与BIND配置详解
  • C++11的历史和统一的初始化列表
  • Qt串口通信设计指南:通信层架构与实践
  • K8S学习----应用部署架构:传统、虚拟化与容器的演进与对比
  • 虚拟财产刑事辩护:跨地域性与匿名性带来的挑战
  • 记录一些sonic自动化运行中的问题