比赛链接

A.给你一个小写字母字符串,选择其中k个字母,满足后面的要比前面的至少大2,求最小代价和。

AC代码:

#include <bits/stdc++.h>
using namespace std;int main()
{int n, k;string a;cin >> n >> k >> a;sort(a.begin(), a.end());int sum = 0, pre = 0, ct = 0;for (int i = 0; i < n; i++){if (a[i] - pre > 1){ct++;sum += a[i] - 'a' + 1;pre = a[i];}if (ct >= k)break;}cout << (ct >= k ? sum : -1) << endl;return 0;
}

B.有n个人和m份食物,每个人每天吃一份食物,每份食物都有各自的品种。并且一个人每天吃的食物品种必须一样,问n个人可以坚持多少天。

我用二分写的,其实范围100直接暴力就行了。

AC代码:

#include <bits/stdc++.h>
using namespace std;int a[110];
int main()
{int n, m;cin >> n >> m;for (int i = 1; i <= m; i++){int temp;cin >> temp;a[temp]++;}if (m < n)return cout << 0 << endl, 0;int l = 1, r = 100, ans;while (l <= r){int mid = l + r >> 1;int res = 0;for (int i = 1; i <= 100; i++)res += a[i] / mid;if (res >= n){ans = mid;l = mid + 1;}elser = mid - 1;}cout << ans << endl;return 0;
}

C.要从1号星球飞到2号星球、2->3、3->4… … n-1->n…n->1。在每个星球上起飞和降落都需要一个代价。问最开始需要携带的燃料至少是多少。

题目看到一半就知道是二分,具体的代价计算规则没看懂,但是看了一下样例解释就知道怎么算了。
据说也可以直接公式On逆推出答案

AC代码:

#include <bits/stdc++.h>
using namespace std;int a[1010][2];
int main()
{int n, m;cin >> n >> m;for (int i = 1; i <= n; i++)cin >> a[i][0] >> a[i][1];double l = 0, r = 100000000000000;while (r - l >= 0.000001){double mid = (l + r) / 2;int flag = 1;double res = m + mid;res -= res / a[1][0];if (res < m)flag = 0;for (int i = 2; flag && i <= n; i++){res -= res / a[i][0];res -= res / a[i][1];if (res < m)flag = 0;}res -= res / a[1][1];if (res < m)flag = 0;if (flag){r = mid - 0.000001;}elsel = mid + 0.000001;}if (r == 100000000000000)printf("-1\n");elseprintf("%.8f\n", r);return 0;
}

D.交互题

一看到题也是二分… 然后看到了But the rocket is broken就知道事情不简单。原来这个机器会给出错误回答,而且错误回答是有循环的。因此我们先求出这个错误循环再求解即可。

AC代码:

#include <bits/stdc++.h>
using namespace std;int a[100];
int main()
{int n, m;cin >> n >> m;for (int i = 1; i <= m; i++){cout << n << endl;fflush(stdout);int temp;cin >> temp;if (temp == 0)return 0;if (temp == -1)a[i] = 1;elsea[i] = -1;}int l = 1, r = n, ans, ct = 1;while (l <= r){int mid = l + r >> 1;cout << mid << endl;fflush(stdout);int temp;cin >> temp;temp *= a[ct++];if (ct > m)ct = 1;if (temp == 0)return 0;if (temp == -1)r = mid - 1;elsel = mid + 1;}return 0;
}

E.有m个数字,每种都可以无限使用,问你随意组合之后取模k有多少种结果并列出。

裴蜀定理:对于给定的正整数a,b,方程 a ∗ x + b ∗ y = c a*x+b*y=c a∗x+b∗y=c有解的充要条件为c是gcd(a,b)的整数倍

因此m个数可以表示所有gcd(a1,a2…am)的整数倍的值

AC代码:

#include <bits/stdc++.h>
using namespace std;int a[100];
int main()
{int n, k;cin >> n >> k;int ans = k;while (n--){int temp;cin >> temp;ans = __gcd(ans, temp % k);}cout << k / ans << endl;for (int i = 0; i < k; i += ans)cout << i << ' ';cout << endl;return 0;
}

CF499div2题解相关推荐

  1. [JS][dfs]题解 | #迷宫问题#

    题解 | #迷宫问题# 题目链接 迷宫问题 题目描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 1, 1 ...

  2. [JS][dp]题解 | #打家劫舍(一)#

    题解 | #打家劫舍(一)# 题目链接 打家劫舍(一) 题目描述 描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家, ...

  3. [JS]题解 | #魔法数字#

    题解 | #魔法数字# 题目链接 魔法数字 题目描述 牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的. 操作共有三种,如下: 在当前数字的基础上 ...

  4. [JS]题解 | #岛屿数量#

    题解 | #岛屿数量# 题目链接 岛屿数量 题目描述 时间限制:1秒 空间限制:256M 描述 给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右 ...

  5. [JS] 题解:提取不重复的整数

    题解:提取不重复的整数 https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1 时间限制:1秒 空间限制:32M 描述 输 ...

  6. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  7. [洛谷1383]高级打字机 题解

    题解 这道题一看就珂以用主席树啊 这是一道神奇的题目,那么我们先敲一个主席树,然后维护一个数组len,表示下一次应该在len + 1插入, 之后对于T操作,在上一个版本的len + 1上直接执行插入 ...

  8. luogu P1549 棋盘问题(2) 题解

    luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...

  9. 【题解搬运】PAT_L1-009 N个数求和

    从我原来的博客上搬运.原先blog作废. (伪)水题+1,旨在继续摸清这个blog(囧 题目 就是求N个数字的和.麻烦的是,这些数字是以有理数"分子/分母"的形式给出的,你输出的和 ...

最新文章

  1. 面试题----中断的一些知识
  2. 用python编写脚本实现备份文件
  3. 独家|OpenCV1.10 使用OpenCV实现摄像头标定
  4. HTML(六)——表单验证、正则表达式、事件
  5. .NET 4.0有一个新的GAC,为什么?
  6. 为什么都要鄙视 PHP 程序员? Java联盟 百家号 07-24 21:43 前几天发表了一篇文章《图解:程序员之间是如何相互鄙视的?》,有人就在留言处留言。 可以解释下:为什么都鄙视PHP工程师
  7. Jenkins构建自动化脚本执行无界面解决方法
  8. 使用 Docker 部署 Spring Boot 项目
  9. 网络安全-windowserver搭建DHCP服务器
  10. 安徽关节式焊接机器人_机器人自动焊接技术的优势及应用介绍
  11. 在Selenium Chrome驱动程序上运行测试
  12. 差距缩小 WLAN市场销量逼近有线网络
  13. 论文笔记_S2D.16-2016-3DV-利用全卷积残差网络进行深度预测
  14. Axure RP8介绍
  15. 数码相机成像原理CCD和CMOS及相机模组分析
  16. oracle按序号排序,Oracle排序以及序号的显示
  17. 第 8 篇、Linux C 基础 | 运算符
  18. vue集成Luckyexcel实现在线编辑Excel,可自行导入,也可从服务器端获取
  19. ASP.NET Core WebApi构建API接口服务实战演练
  20. For 循环优化,提升效率

热门文章

  1. text-align margin line-height之间的区别
  2. 存储过程和触发器作用以及使用
  3. 研报精选230405
  4. M内核迎来大BOSS,ARM发布Cortex-M55配NPU Ethos-U55 ,带来无与伦比的性能提升
  5. java decode函数用法_decode函数的几种用法
  6. Android中的Surface, SurfaceHolder, SurfaceHolder.Callback, SurfaceView
  7. ubuntu 16.04安装x11 vnc
  8. 感恩送书第1期:2019年快来了,感谢各位网友,送《Spring 5开发大全》
  9. Seata聚合 AT、TCC、SAGA 、 XA事务模式打造一站式的分布式事务解决方案
  10. FreeBSD 上设置 PF 防火墙