B : 截绳子

题目描述

有 n 段绳子,长短不一。现在要从中截出 k 段长度相同的绳子。当然,一段绳子可以截出来多段绳子。截出来的绳子最长是多少?

输入格式

第一行两个整数 n 和 k (1≤n,k≤105)
接下来 n 行,每行有一个整数 ai​ (1≤ai​≤107),代表每根绳子的长度

输出格式

一个数,代表最长长度。相对误差或绝对误差不超过 10−6

测试样例

样例 1

输入:

4 11
802
743
457
539

输出:

200.5

解答

#include <bits/stdc++.h>using namespace std;int main()
{int n, k;cin >> n >> k;double a[n];double f = 0;double t = 100000000;// 输入每段绳子的长度,并找到最短的那一根for (int i = 0; i < n; i++){cin >> a[i];f = f + a[i];if (a[i] < t){t = a[i];}}double d1 = 0, d2 = 0;double h = 0;// 二分法的起点与终点设置d1 = t / k; // 最短时为最短绳子一根就可以得到k根绳子d2 = f / k; // 最长时为全部绳子合在一起,剪出k根绳子的长度int g1 = 0;while (1){h = (d1 + d2) / 2;int u = 0;// 假设截取h长度,计算可以获得多少根绳子for (int i = 0; i < n; i++){u = a[i] / h;g1 = g1 + u;}// h太大时,g1会小于kif (g1 < k){d2 = h;}else if (g1 >= k){d1 = h;}g1 = 0;// 判断若分界线处小于1e-6时,输出d1即可if ((d2 - d1) <= 1e-6){break;}}cout << d1 << endl;return 0;
}

C : 复印机

题目描述

有一份原稿,需要复印出 n 份复印件出来。有两台复印机,一台可以每 x 秒复印出一份,另一台可以每 y 秒复印出一份。现在想知道,至少需要多久才能复印完成?
提示:复印件也可以被复印

输入格式

一行三个整数 n,x 和 y (1≤n≤2×108,1≤x,y≤10)

输出格式

一个整数,代表复印 n 份的最短时间

测试样例

样例 1

输入:

4 1 1

输出:

3

样例 2

输入:

5 1 2

输出:

4

解答

#include <bits/stdc++.h>using namespace std;int main()
{int n, x, y;cin >> n >> x >> y;int sum = min(x, y);int d1 = (n - 1) * min(x, y);int d2 = (n - 1) / (x + y);while (1){int s = (d1 + d2) / 2;if (s == d2){break;}int f = s / x + s / y;if (f < n - 1){d2 = s;}else if (f >= n - 1){d1 = s;}}cout << d1 + sum << endl;return 0;
}

D : 商店

题目描述

一条街上有 n 个商店,在第 i 个商店,可以以 ai​ 的价格买入一个商品,也可以以 ai​ 的价格卖出一个商品。商品很沉,最多只能同时拿着 1 个商品在街上走。现在按照给定顺序依次访问所有商店,那么,最大收益是多少?在获得最大收益的前提下,最少交易次数是多少?

输入格式

第一行一个整数 T (1≤T≤5),代表测试用例个数
下面 T 组数据,其中每一组数据都占两行,其中
第一行一个整数 n (1≤n≤105),代表商店个数
下面一行 n 个整数,其中第 i 个数为 ai​ (0≤ai​<2147483648),代表在第 i 个商店可以买入或卖出商品的价格

输出格式

对于每个例子,输出一行两个整数,分别代表最大收益和获得最大收益的前提下最少的交易次数

测试样例

样例 1

输入:

1
5
9 10 7 6 8

输出:

3 4

解答

#include <bits/stdc++.h>using namespace std;int main()
{int T;cin >> T; // T次循环for (int i = 0; i < T; i++){int n;cin >> n;        // n个商店int a[n];        // 每一个商店的价格int b[n];        // 判断是否卖出long long x = 0; // 价值int d = 0;       // 次数// 输入每一个商店的价格,并初始化for (int j = 0; j < n; j++){cin >> a[j];b[j] = 0;}// 寻找每一个卖出点,将其标记for (int j = 0; j < n - 1; j++){if (a[j] > a[j + 1]){b[j] = 1;}}b[n - 1] = 1; // 最后一个商店进行标记int w = a[0]; // w是买for (int j = 0; j < n; j++){if (b[j] == 1) // 如果有标记,进行卖出{long long h = x;x = x + a[j] - w; // 利润计算if (h != x)// 判断是否有利润的改变,如果没有,相当于没有交易(在该商店买了商品,又马上卖掉){d = d + 2;}if (j == n - 1){break;}else{w = a[j + 1]; // 在这个地点买入}}}cout << x << " " << d << endl;}return 0;
}

E : 游戏

题目描述

Alice 和 Bob 在做游戏。Alice 写下了 n 个不同的数字,又选取了数字 K。Alice 让 Bob 进行一些操作,每次操作如下:

  1. 选取两个整数 x,y ,它们的差值不超过 K ,即 ∣x−y∣<=K
  2. 删除它们中较小的数字

Bob 的任务是,尽可能多的进行这样的操作。当然 Bob 有可能一次操作都做不了。那么,Bob 最多可以进行多少次操作?

输入格式

第一行两个整数 n,K (1≤n≤105,1≤K≤1012)
下面一行 n 个整数,其中第 i 个数为 ai​ (0≤ai​≤1012),代表 Alice 写下的数字

输出格式

输出一个整数,代表 Bob 最多可以进行的操作次数

测试样例

样例 1

输入:

5 1
3 7 4 1 5 

输出:

2

解答

#include <bits/stdc++.h>using namespace std;int main()
{long long n, K;cin >> n >> K;long long a[n];int sum = 0;for (int i = 0; i < n; i++){cin >> a[i];}sort(a, a + n);if (n == 1){cout << sum << endl;}else{for (int i = 0; i < n - 1; i++){if ((a[i + 1] - a[i]) <= K){sum++;}}cout << sum << endl;}return 0;
}

Vj程序设计作业H4相关推荐

  1. Vj程序设计作业H2

    A : 相邻数对 问题描述 给定 n 个不同的整数,问这些数中有多少对整数,它们的值正好相差 1. 输入格式 输入的第一行包含一个整数 n,表示给定整数的个数. 第二行包含所给定的 n 个整数. 输出 ...

  2. Vj程序设计作业H11

    A : 爬台阶 题目描述 楼上有 n 级台阶,其中有 m 级台阶是不安全的.yhf 一开始站在第 0 级台阶上,希望最终走到第 n 级台阶 yhf 跨一步满足以下约束: 只能向前走 不能落脚在不安全的 ...

  3. Vj程序设计作业H6

    A : 元音跳跃 问题描述 现在有一个长度为 n 的字符串,都有小写字母组成. 输出最长的连续元音的长度 输入格式 第一行一个整数 n , 0≤n≤106 接下来一行表示字符串 输出格式 输出一行,一 ...

  4. Vj程序设计作业H3

    A : 游戏 问题描述 有 n 个小朋友围成一圈玩游戏,小朋友从 1 至 n 编号,2 号小朋友坐在 1 号小朋友的顺时针方向,3 号小朋友坐在 2 号小朋友的顺时针方向,--,1 号小朋友坐在 n ...

  5. Vj程序设计作业H7

    A : 卖菜 问题描述 在一条街上有 n 个卖菜的商店,按 1 至 n 的顺序排成一排,这些商店都卖一种蔬菜. 第一天,每个商店都自己定了一个价格.店主们希望自己的菜价和其他商店的一致,第二天,每一家 ...

  6. Vj程序设计作业H10

    A : 小明上学 题目背景 小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校.为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间.他上学需要经过数段道路,相邻两段道路之 ...

  7. Vj程序设计作业H12

    A : 01背包 题目描述 有 N 件物品和一个容量为 V 的背包.第 i 件物品的重量是 w[i],价值是 c[i].求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大. 输 ...

  8. Vj程序设计作业H8

    A : 元音回文 问题描述 现在有一个长度为 n 的字符串,都有小写字母组成. 现在所有元音字母都可以看作相同的字符 输出最长回文子串的长度 一个与自身的逆序相同的字符串即为回文串 比如 aba,aa ...

  9. 面向对象程序设计作业 6.1~6.4

    面向对象程序设计作业 6.1-6.4 面对对象基础题三道.继承多态一道. #include <iostream> #include <string> #include < ...

最新文章

  1. 第一次冲刺-个人工作总结01
  2. asp使用mysql5.0_ASP使用MYSQL数据库全攻略
  3. 第五章 常用Lua开发库3-模板渲染
  4. 【Servlet】总结 JSP的四大域对象、Servlet的四个作用域:pageContext、request、session、application
  5. [css] 不用换行的标签,怎么伪元素实现换行的效果?
  6. oracle视图无法使用rowid,请问:无法从没有键值保存表的连接视图中选择 ROWID 这个是什么原因啊?...
  7. linux脚本定时拷贝文件,使用Linux shell脚本实现FTP定时执行批量下载指定文件
  8. 开源啦:连DeepMind也捉急的游戏,OpenAI给你攻破第一关的高分算法
  9. Linux的工作队列work queue和延时工作队列
  10. linux系统权限和用户
  11. Linux下TTY与PTY的区别
  12. 数据结构之B+树插入详解
  13. VS解决方案目录和工程目录
  14. 如何去除微信小程序 wxParse 解析富文本图片间隙问题
  15. AlphaPose(RMPE)区域多人姿态估计理解
  16. linux性能监控工具-nmon安装使用详细教程
  17. 每一题-101(患某种疾病的患者)
  18. 路由器和调制解调器的区别_如何重新启动路由器和调制解调器
  19. seo方法 seo优化技巧 教你如何提高网站排名
  20. 国内期刊投稿用 CTeX(CTeX_2.9.2.164_Full)

热门文章

  1. 火狐浏览器安装Internet Download Manager浏览器插件方法
  2. C语言将16进制的数转换为字符串的方法(改进)
  3. 《统计学》——思考题第一章导论(贾俊平)
  4. 使用Python进行量化投资A股的4 种方法!
  5. 猜数字游戏python程序_Python猜数游戏,程序随机生成一个0-100的数,猜对后退出【实例源码】...
  6. Arduino UNO + Proteus串口通讯仿真实验
  7. 衡量点云重建结果的指标-CD、EMD
  8. 06.render函数
  9. 用java写一个简单的音乐播放器(二)
  10. 微积分在图像处理中的应用