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;
    //注意这里只需要把有值的清空 不然1e6TLE
    for (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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pdfjs-4.0.379-dist直接打开viewer.html报错

下载了pdfjs-4.0.379-dist&#xff0c;但是直接打开viewer.html报错。解决方法&#xff1a;安装live Sever&#xff0c;并用live Server打开 打开浏览器截图 错误提示如下&#xff1a; Access to image at file:///D:/work/web-common/car-knowledge-base-web/static/pdfjs-4…

OJ 栓奶牛【C】【Python】【二分算法】

题目 算法思路 要求的距离在最近木桩与最远木桩相隔距离到零之间&#xff0c;所以是二分法 先取一个中间值&#xff0c;看按照这个中间值可以栓多少奶牛&#xff0c;再与输入奶牛数比较&#xff0c;如果大于等于&#xff0c;则增大距离&#xff0c;注意这里等于也是增大距离…

AcWing1262.鱼塘钓鱼

【题目链接】1262. 鱼塘钓鱼 - AcWing题库 输入样例&#xff1a; 5 10 14 20 16 9 2 4 6 5 3 3 5 4 4 14输出样例&#xff1a; 76 【代码及详细注释】 #include<bits/stdc.h> using namespace std; typedef long long ll; const int N110; int a[N],b[N],sp[N],d[N]…

Unity Pro 2019 for Mac:专业级游戏引擎,助力创意无限延伸!

Unity Pro 2019是一款功能强大的游戏开发引擎&#xff0c;其特点主要体现在以下几个方面&#xff1a; 强大的渲染技术&#xff1a;Unity Pro 2019采用了新的渲染技术&#xff0c;包括脚本化渲染流水线&#xff0c;能够轻松自定义渲染管线&#xff0c;通过C#代码和材料材质&…

Day36:LeedCode 435. 无重叠区间 763.划分字母区间 56. 合并区间 蓝桥杯 管道

435. 无重叠区间 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 。 示例 1: 输入: intervals [[1,2],[2,3],[3,4],[1,3]] 输出: 1 解释: 移除 [1,3] 后&#xff0c;剩下的区间…

Python 编程 深入了解内存管理机制、深拷贝与浅拷贝

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、对象和引用、内存管理机制 Python 中的一切都是对象&#xff0c;包括数字、字符串、列表和函数等。为了简化内存管理并提高效率&#xff0c;Python 采用了统一的对象模型。在这个模型中&#xff0c…

c++——sort()函数

一、代码和效果 #include<bits/stdc.h> using namespace std;int main() {int a[6]{1,45,2,5,456,7};sort(a,a6);for(int i0; i<6; i){cout<<a[i]<<" "<<endl;}return 0; } 二、sort函数解析 &#xff08;从小到大&#xff09; std::so…

【C++】lambda表达式

目录 一、lambda表达式1.1 C98中的例子1.2 lambda表达式语法1.3 函数对象与lambda表达式 一、lambda表达式 1.1 C98中的例子 如果要对一个数据集合进行排序&#xff0c;可以使用sort函数&#xff1a; int main() {int array[] { 4,1,8,5,3,7,0,9,2,6 };// 默认按照小于比较…

15.leetcode---逆波兰表达式求值(Java版)

题目链接: https://leetcode.cn/problems/8Zf90G/description/ 题解: 栈 代码: 测试

并发编程——5.JMM、可见性和有序性及volatile的底层实现原理

这篇文章我们来讲一下JMM和其相关的内容。 目录 1.JMM模型的介绍 2.volatile的底层原理 3.有序性的介绍 3.1as-if-serial原则 3.2happen-before原则 4.内存屏障 5.小结 1.JMM模型的介绍 首先&#xff0c;我们来看一下JMM模型。 这是一张多核CPU的并发缓存架构图。我们…

CloudCompare——win11配置CloudComPy

CloudComPy配置 1 基本环境介绍2 安装Anaconda2.1 下载anaconda2.2 安装anaconda2.3 配置镜像源2.4 更改虚拟环境的默认创建位置2.5 其他问题2.5.1 激活自己创建的环境提示&#xff1a;系统找不到指定的路径2.5.2 InvalidVersionSpecError: Invalid version spec: 2.72.5.3 卸载…

JS-27-操作表单

用JavaScript操作表单和操作DOM是类似的&#xff0c;因为表单本身也是DOM树。 不过表单的输入框、下拉框等可以接收用户输入&#xff0c;所以用JavaScript来操作表单&#xff0c;可以获得用户输入的内容&#xff0c;或者对一个输入框设置新的内容。 一、HTML表单的输入控件 H…

Capture One 23 Enterprise for Mac中文版 全面的图像处理工具

Capture One 23 Enterprise for Mac中文版一款专业的图像编辑和管理软件&#xff0c;具备强大的功能和工具&#xff0c;适用于摄影师、摄影工作室和专业用户。 软件下载&#xff1a;Capture One 23 Enterprise for Mac中文版下载 该软件为用户提供了全面的图像处理工具&#xf…

fastapi的安装

使用pip安装 安装fastapi的语句 pip install fastapi 可以使用国内阿里云镜像源进行安装&#xff0c;会快很多 pip install fastapi -i https://mirrors.aliyun.com/pypi/simple api启动依赖于uvicorn&#xff0c;还需要安装uvicorn pip install uvicorn -i https://mirr…

Spring之AOP的详细讲解

目录 一.SpringAOP是什么&#xff1f; 1.1理论知识点 1.2简单的AOP例子 二.SpringAOP的核心概念 2.1切点(Pointcut) 2.2通知&#xff08;Advice&#xff09; 2.3切⾯(Aspect) 2.4通知类型 2.5切⾯优先级 Order 2.6切点表达式 2.6.1 execution表达式 2.6.2annotati…

PHP 伪协议:使用 php://input 访问原始 POST 数据

文章目录 参考环境PHP 伪协议概念为什么需要 PHP 伪协议&#xff1f; php://input为什么需要 php://input&#xff1f;更灵活的数据处理减小性能压力 发送 POST 数据HackBarHackBar 插件的获取 $_POST打开 HackBar 插件通过 HackBar 插件发起 POST 请求 基操 enable_post_data_…

【ros】结果实时在线可视化

文章目录 一、前言二、订阅与发布三、回调四、可视化 4.1、初始化参数4.2、初始化图片 4.3、画结果 4.4、可视化结果 一、前言 感知与规划控制是无人驾驶算法重要算法&#xff0c;在交付测试阶段也最容易引起摩擦&#xff0c;这也是司空见惯的现象。有时候可能是接口对齐问题…

AI绘画与建筑大师共创出的作品,震惊了?!

在CAD制图盛行的今天&#xff0c;手绘依然是许多建筑大师首选的灵感记录方式。建筑大师西扎曾说过&#xff1a;草图能迅速的记录下他思维的瞬间&#xff0c;并再一次激发他更深入的思考。 看完这些建筑大师的手稿&#xff0c;不得不让人表示&#xff1a;这和医生处方手迹简直有…

【满满干货】聚合接口—自动化工具㊣

背景 在介绍接口自动化之前先给大家分享一下我所理解的“业务中台”的概念&#xff1a;业务中台是将企业的核心能力以数字化形式沉淀为各种服务中心&#xff0c;其目的是“提供企业能够快速&#xff0c;低成本创新的能力”。 例如公司内部的业务a、业务b同时有订单、登录等功…

企业网盘私有化部署和本地私有化部署的区别

在当今数据量激增的背景下&#xff0c;企业如何高效、安全地管理和传输大量数据成为了一个关键问题。企业网盘作为一种解决方案&#xff0c;其部署方式直接影响到数据的安全性、工作效率的提升以及运营成本的控制。私有化部署与本地化部署是两种主流的企业网盘部署策略&#xf…