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

网站链接结构有哪些可以生成静态网站源码

网站链接结构有哪些,可以生成静态网站源码,甘肃建设局网站首页,新蔡县做网站收多少钱1. 题意 给定一个数组,和一个最多次操作次数。每次操作可以将数组中的一个数 x x x分成两个数 t x − t t\quad x-t tx−t。问 m a x O p e r a t i o n C n t maxOperationCnt maxOperationCnt次操作后,数组中最大的数最小的值是多少。 2. 题解 这个…

1. 题意

给定一个数组,和一个最多次操作次数。每次操作可以将数组中的一个数 x x x分成两个数 t x − t t\quad x-t txt。问 m a x O p e r a t i o n C n t maxOperationCnt maxOperationCnt次操作后,数组中最大的数最小的值是多少。

2. 题解

这个题,我们需要转换思路,不要去想怎么分,而是经过操作后数组中有几个数。对于一个数 x x x,要使它分割后小于 y y y, 我们肯定分割后尽量都分成每个数都为 y y y, 因此最后的堆数为 ⌈ x y ⌉ \lceil \frac{x}{y}\rceil yx, 分割的次数为 ⌊ x − 1 y ⌋ \lfloor\frac{x-1}{y}\rfloor yx1

再将数组排好序数,进行二分,每次尝试数 x x x,看需要的分割数 s p l i t C n t splitCnt splitCnt是否小于等于 m a x O p e r a t i o n C n t maxOperationCnt maxOperationCnt
s p l i t C n t = ∑ x i ∈ S ⌊ x i − 1 y ⌋ S : = { x i , x i > y } splitCnt=\sum_{x_i\in S}\lfloor\frac{x_i-1}{y}\rfloor\quad \\S :=\{x_i,x_i >y\} splitCnt=xiSyxi1S:={xi,xi>y}

  • 代码一
class Solution {
public:int logcnt(int base,int v) {int ans = 0;while (base < v) {v = (v + 1)/2;ans++;}return ans;}bool check(const vector<int> &nums, int val,int bid, int maxCnt) {int sz = nums.size();int ndcnt = 0;for (int i = bid;i < sz;i++) {ndcnt += (nums[i]  - 1) / val;}return ndcnt <= maxCnt;}int FindNotLess(const vector<int> &a, int v) {int l = 0;int r = a.size();while (l < r) {int mid = (l + r) >> 1;if (a[mid] <= v)l = mid + 1;else r = mid - 1;}return l;}int minimumSize(vector<int>& nums, int maxOperations) {sort(nums.begin(), nums.end());int sz = nums.size();int l =  1;int r = *nums.rbegin();while (l < r) {int val = (l + r) >> 1;// int idx = FindNotLess(nums, val);vector<int>::iterator it = upper_bound(nums.begin(), nums.end(), val);int ndCnt = 0;// for (int i = idx;i < sz;i++) {//     ndCnt += (nums[i] - 1) / val;// }for (;it != nums.end(); it++) {ndCnt += ((*it) - 1)/val;}if (ndCnt <= maxOperations) {r = val;}else {l = val + 1;}}return l;}
};

其实不需要排序的,直接尝试遍历整个数组就好了

  • 03xf的代码
class Solution {
public:int minimumSize(vector<int>& nums, int maxOperations) {auto check = [&](int m) -> bool {long long cnt = 0;for (int x : nums) {cnt += (x - 1) / m;}return cnt <= maxOperations;};int left = 0; // 循环不变量 check(left) == falseint right = ranges::max(nums); // 循环不变量 check(right) == truewhile (left + 1 < right) {int mid = left + (right - left) / 2;(check(mid) ? right : left) = mid;}return right;}
};

参考

03xf

http://www.yayakq.cn/news/228559/

相关文章:

  • 重庆网站建设论坛建设集团股份有限公司
  • vue做pc网站上海网站备案流程
  • 花店营销策略超市门户网站建设wordpress次级菜单
  • 个人网站创建平台要多少钱南昌seo排名收费
  • 深圳注明企业网站设计中国最好的品牌策划公司
  • 增城网站定制开发公司新网站如何做seo
  • 何炅做的网站广告新闻发布稿
  • 电子商务网站建设规划说明书青岛企业展厅设计公司
  • jsp做网站注册页面wordpress折叠目录
  • 河北建站公司推广竞价账户托管
  • 网站怎么做下载内容wordpress建立模板
  • 宣城公司做网站物业管理 网站开发
  • 楼盘网站建设方案ppt2021最火关键词
  • 学网站建设怎么样做彩票的网站吗
  • 贵州省住房和城乡建设厅网站-首页嵌入式开发学什么
  • 创意品牌网站WordPress 跳转 xampp
  • 青岛做网站哪个最好一个网站做多少个关键词比较好
  • 做网站带来好处珠海商城
  • 织梦 网站栏目管理建设网站交流
  • 北京最新发布信息网站关键字排名优化
  • 做网站品批量入侵wordpress
  • 娱乐网站代理商怎么做做网站怎样申请域名
  • 网站建设哪家便宜网站建站网站建站
  • 一个平台维护三天正常吗怎样进行站点优化
  • 国外做ppt的网站成都网站建设公司服务商
  • 关于做网站的笑话手机上的网站
  • 做网站代理商好赚吗dw怎么做网站首页
  • dw asp access 网站开发优点网站 优点
  • 济南制作网站的公司吗自己做的网站服务器在哪里
  • 易语言可以做网站管理系统吗建筑工程网络进度图