CF938Div3(A-F)

A:

买n个酸奶,一次一瓶a元,一次买两瓶可以优惠价b元,也可以a元,问恰好买n瓶需要多少钱.

void solve() {int n, a, b;cin >> n >> a >> b;int ans = min(a * n, n / 2 * b + n % 2 * a);cout << ans << endl;
}

B:

给你一个数组,问能否构造出下图的东西.

此题c,b皆为正数,所以左上角数字肯定是排序后的第一个数字.

然后去构造出:

a[1][1]+i*c+j*d

存到数组,排序,判断是否相等

void solve() {int n, c, d;vector<int>a;cin >> n >> c >> d;for (int i = 1; i <= n * n; i++) {int x; cin >> x;a.push_back(x);}sort(a.begin(), a.end());int p = a[0];vector<int>b;for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {int x = p + i * c + j * d;b.push_back(x);}}sort(b.begin(), b.end());if (a == b)cout << "YES" << endl;else cout << "NO" << endl;
}

C:

 先从左边攻击,所以左边的攻击次数是\left \lceil \frac{k}{2}\right \rceil

右边攻击次数\left \lfloor \frac{k}{2} \right \rfloor

去从左边开始枚举,如果小于等于攻击次数,ans++,同时攻击次数减去a[i],再把a[i]设置为1e18,避免从右边又计算一次.否则a[i]大于攻击次数,a[i]-=L.退出.

从右边做一次即可.

void solve() {int n, k; cin >> n >> k;vector<int>a(n + 1); int ans = 0;for (int i = 1; i <= n; i++)cin >> a[i];int L = (k + 1) / 2;int R = (k / 2);for (int i = 1; i <= n; i++) {if (a[i] <= L) {ans++; L -= a[i]; a[i] = 1e18;}else {a[i] -= L;break;}}for (int i = n; i >= 1; i--) {if (a[i] <= R) {ans++; R -= a[i];a[i] = 1e18;}else {cout << ans << endl;return;}}cout << ans << endl;
}

D:

D一开始我外层循环,内层双指针T了,看来是个滑动窗口的思想

void solve() {int n, m, k; cin >> n >> m >> k;vector<int>a(n + 1);vector<int>b(m + 1);int ans = 0; int now = 0;for (int i = 1; i <= n; i++)cin >> a[i];for (int j = 1; j <= m; j++)cin >> b[j], c[b[j]]++;//c数组记录b[j]出现的次数for (int i = 1; i <= n; i++) {//如果a[i]在c中不为0(既b数组中出现过)//并且a[i]这个数字在d这个窗口的出现次数小于//now++if (c[a[i]]&&d[a[i]] < c[a[i]]) {now++;}//进来一个d[a[i]]++;//窗口长度为m i-m>=1 表示肯定要弹出一个了if (i - m >= 1) {//左边弹出d[a[i - m]]--;//[1 2 3] 4---->1 [2 3 4]//1 2 3//例如这个例子 1弹出 所以这个窗口1的数量小于c数组 配对数字--if (d[a[i - m]] < c[a[i - m]])now--;}//i>=m是因为题目要求窗口必须m的大小 显然i在m之前无法形成大小为m的窗口(i是右端点)if (i >= m && now >= k)ans++;}cout << ans << endl;//注意这里只需要把有值的清空 不然1e6TLEfor (int i = 1; i <= n; i++) {d[a[i]] = 0;}for (int i = 1; i <= m; i++) {c[b[i]] = 0;}
}

F:

有1,2,3,4,四个数字,输入四个数字的个数,如果异或和等于0,则Bob获胜,每次游戏结束,可以删去掉一个数字,继续游戏,直到为空.

例如2 2 2 0这个例子,不操作赢一次,0 2 2 0两次,0 0 2 0三次.结束

请注意:是不可以0 0 0 0

题意纯属nt:比如2 2 2 0这个例子,Bob胜利有以下情况

2 2 2 0,0 2 2 0,0 0 2 0    

2 2 0 0,0 2 0 0,2 0 0 0

这样理解是错误的,此题不是说Bob有几种胜利的方式,而是在一局游戏中,最优操作得到的胜利次数.

比如上面的[0 2 2 0]和[2 2 0 0]在一局游戏中是不能都得到的.因为这是一局游戏,如果得到[0 2 2 0]就必须删除一号位的数字,那么一号位的数字被删除,又怎么能得到[2 2 0 0]呢?

可以单独考虑每个数字,例如[5 0 0 0]答案显然是2。

可以得知ans+=pi/2

但是可能[1 1 1 0],[5 3 3],这种本来就是异或为0,共同特征是a*b*c%2==1

void solve() {int a, b, c, d; cin >> a >> b >> c >> d;int ans = 0;ans += a / 2 + b / 2 + c / 2 + d / 2 + a * b * c % 2;cout << ans << endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/617353.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024最新在线工具箱网站系统源码

2024最新在线工具箱网站系统源码 下载地址: 2024最新在线工具箱网站系统源码-JXASP源码网https://www.jxasp.com/think-php/12489.html

Python零基础入门到精通学习教程2024年最新版,看完这一篇就够了。

前言 2023年即将接近尾声&#xff0c;随着2024年的到来&#xff0c;Python即将步入他的35岁诞生。&#xff08;冷知识&#xff1a;Python1989年诞生&#xff0c;Java是1991年&#xff0c;所以Python比Java更加历史悠久&#xff09;作为当今世界上最受欢迎的编程语言。不少小伙…

Base64编码方式简介

从二进制转为字符的一种编码。每个base64字符表示长度为6个比特的二进制数据&#xff0c;因此可以推得每3个字节&#xff08;24比特&#xff09;可以由4个base64字符组成。base64字符编码表如下&#xff1a; 因此需要注意的是&#xff0c;当二进制文件长度不是3的倍数的时候&a…

书生·浦语2.0(InternLM2)大模型实战--Day03 LMDeploy量化部署 | LLMVLM实战

课程视频&#xff1a;https://www.bilibili.com/video/BV1tr421x75B/课程文档&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/lmdeploy/README.md课程作业&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/lmdeploy/homework.md平台&#xff1a;In…

Linux部署自动化运维平台Spug

文章目录 前言1. Docker安装Spug2 . 本地访问测试3. Linux 安装cpolar4. 配置Spug公网访问地址5. 公网远程访问Spug管理界面6. 固定Spug公网地址 前言 Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台&#xff0c;整合了主机管理、主机批量执行、主机在线终端、文件…

安装 Kali NetHunter (完整版、精简版、非root版)、实战指南、ARM设备武器化指南、andrax、安卓渗透drozer

From&#xff1a;https://www.kali.org/docs/nethunter/ NetHunter 实战指南&#xff1a;https://www.vuln.cn/6430 乌云 存档&#xff1a;https://www.vuln.cn/wooyundrops 1、Kali NetHunter Kali NetHunter 简介 Net&#xff08;网络&#xff09;&#xff0c;hunter&#x…

【CDN(Content Delivery Network)】

文章目录 CDN&#xff08;Content Delivery Network&#xff09;视频流化服务和CDN&#xff1a;上下文多媒体: 视频存储视频的流化服务&#xff1a;多媒体流化服务&#xff1a;DASH流式多媒体技术3: DASH CDN&#xff08;Content Delivery Network&#xff09; 视频流化服务和…

js基础知识+练习

一&#xff0c;JavaScript简单了解 1.什么是JavaScript JavaScript简称JS&#xff0c;是较为流行的一种前端编程语言&#xff0c;是一种脚本语言&#xff0c;通过解释器运行&#xff0c;主要在客户端&#xff08;浏览器&#xff09;上运行&#xff0c;现在也可以基于node.js在服…

LRUCache原理及源码实现

目录 LRUCache简介&#xff1a; LRUCache的实现&#xff1a; LinkedHashMap方法实现&#xff1a; 自己实现链表&#xff1a; 前言&#xff1a; 有需要本文章源码的友友请前往&#xff1a;LRUCache源码 LRUCache简介&#xff1a; LRU是Least Recently Used的缩写&#xf…

VMware安装Red Hat7.9

1、下载Red Hat Enterprise Linux7.9版本 【百度网盘下载】 链接&#xff1a;https://pan.baidu.com/s/1567NfZRF48PBXfUqxumvDA 提取码&#xff1a;bm7u 2、在虚拟机中创建Red Hat7.9 【点击创建虚拟机】 【自定义高级】 【选择光盘映像安装】 全名自定义即可 【虚拟机命…

阿里云-Region、VPC、VSwitch、Vrouter

1、Region region是指云资源所在的区域&#xff0c;比如华北3&#xff0c;华东1等等。下图的华北3(张家口)就是 2、VPC VPC&#xff1a;Virtual Private Cloud&#xff0c;简称VPC。基于阿里云创建的自定义私有网络, 不同的专有网络之间二层逻辑隔离&#xff0c;可以在自己创…

Nginx健康检查

Nginx健康检查nginx_upstream_check_module nginx健康检查介绍: ​ 主动健康检查&#xff0c;nignx定时主动地去ping后端的服务列表&#xff0c;当发现某服务出现异常时&#xff0c;把该服务从健康列表中移除&#xff0c;当发现某服务恢复时&#xff0c;又能够将该服务加回健…