AcWing第 100 场周赛

news/2024/12/29 8:30:19/

4953. 比赛

n 个人参加乒乓球比赛。

比赛一共进行了 n−1 场。

每场比赛举办方都需要准备 2×b+1 瓶水,其中 2×b 瓶水给选手(每场比赛 2 人参加,每人 b 瓶),1 瓶水给裁判。

此外,所有参加比赛的 n 名选手,每名选手在比赛期间总共会得到举办方准备的 p 条毛巾。

请你计算,举办方一共需要准备多少瓶水和多少条毛巾。

输入格式

共一行,三个整数 n,b,p。

输出格式

两个整数,表示所需准备的水的数量和毛巾的数量。

数据范围

前 33 个测试点满足 1≤n,b,p≤10。
所有测试点满足 1≤n,b,p≤500。

输入样例1:

5 2 3

输出样例1:

20 15

输入样例2:

8 2 4

输出样例2:

35 32
// Online C++ compiler to run C++ program online
#include <iostream>
using namespace std;
int main() {int n,b,p;cin>>n>>b>>p;cout<<(n-1)*(2*b+1) << " "<< p*n;
}

4954. 挑选

给定一个包含 n 个正整数 a1,a2,…,an 的集合。

集合中可能存在数值相同的元素。

请你从集合中挑选一些元素,要求同时满足以下所有条件:

  1. 被选中元素不少于 2 个。
  2. 所有被选中元素之和不小于 l 且不大于 r。
  3. 所有被选中元素之中最大元素与最小元素之差不小于 x。

请问,一共有多少种不同的选法。

注意:

  • 不考虑元素顺序,{a1,a2} 和 {a2,a1} 应当视为同一种选法。
  • 不同元素即使数值相同,也应当视为不同个体,即使 a1=a2

输入格式

第一行包含四个整数 n,l,r,x。

第二行包含 n 个整数 a1,a2,…,an。

输出格式

一个整数,表示不同选法的数量。

数据范围

前 33 个测试点满足 1≤n≤5。
所有测试点满足 1≤n≤15,1≤l≤r≤109,1≤x≤106,1≤ai≤106。

输入样例1:

3 5 6 1
1 2 3

输出样例1:

2

输入样例2:

4 40 50 10
10 20 30 25

输出样例2:

2

输入样例3:

5 25 35 10
10 10 20 10 20

输出样例3:

6

 

#include<bits/stdc++.h>
using namespace std;int main()
{int n, l, r, x, ans = 0;scanf("%d%d%d%d", &n, &l, &r, &x);vector<int> a(n);for (int i = 0; i < n; i ++ ) scanf("%d", &a[i]);for (int i = 1; i < 1 << n; i ++ ){int mi = 2e9, mx = 0, cnt = 0;long long sum = 0;for (int j = 0; j < n; j ++ )if (i >> j & 1){cnt ++ ;mi = min(mi, a[j]);mx = max(mx, a[j]);sum += a[j];}if (cnt == 1) continue;if (sum >= l && sum <= r && mx - mi >= x) ans ++ ;}printf("%d", ans);return 0;
}

 4955. 牌堆

有 n 张纸牌,编号 1∼n。

其中,第 i 张纸牌的价值为 vi。

你要玩一个游戏,具体流程如下:

首先,你要将 n 张牌一张叠一张地堆成一个牌堆,牌堆中纸牌的具体排列顺序由你决定。

接下来,你需要依次进行 m 次操作。

关于第 i 次操作:

  • 你的任务是将编号为 ai 的纸牌从牌堆中抽出,并置于牌堆顶部。
  • 如果执行此次操作时,不存在纸牌位于纸牌 ai 之上,即纸牌 ai 本来就位于牌堆顶部,则此次操作无需付出任何代价。
  • 如果执行此次操作时,存在纸牌位于纸牌 ai 之上,则此次操作需要付出代价,具体代价为所有位于纸牌 ai 之上的纸牌的价值之和(不要将价值和编号混淆)。

请你合理安排初始时牌堆中的纸牌排列顺序,从而使得执行完所有操作需要付出的总代价尽可能小。

输出总代价的最小可能值。

例如,如果一共有 3 张纸牌,价值分别为 1,2,3 一共需要进行 5 次操作,每次操作需要置于牌堆顶部的卡牌分别为 1,3,2,3,1。

那么一种最佳的初始时牌堆中纸牌排列顺序为从上到下依次为纸牌 1,3,2。

具体操作过程如下:

  • 第 11 次操作,需要将纸牌 11 置于牌堆顶部,由于纸牌 11 本来就在牌堆顶部,因此,所需代价为 00,执行完此次操作后,牌堆中纸牌排列顺序仍为 1,3,21,3,2。
  • 第 22 次操作,需要将纸牌 33 置于牌堆顶部,由于纸牌 11 位于纸牌 33 之上,因此,所需代价为 v1=1�1=1,执行完此次操作后,牌堆中纸牌排列顺序为 3,1,23,1,2。
  • 第 33 次操作,需要将纸牌 22 置于牌堆顶部,由于纸牌 1,31,3 位于纸牌 22 之上,因此,所需代价为 v1+v3=4�1+�3=4,执行完此次操作后,牌堆中纸牌排列顺序为 2,3,12,3,1。
  • 第 44 次操作,需要将纸牌 33 置于牌堆顶部,由于纸牌 22 位于纸牌 33 之上,因此,所需代价为 v2=2�2=2,执行完此次操作后,牌堆中纸牌排列顺序为 3,2,13,2,1。
  • 第 55 次操作,需要将纸牌 11 置于牌堆顶部,由于纸牌 2,32,3 位于纸牌 11 之上,因此,所需代价为 v2+v3=5�2+�3=5,执行完此次操作后,牌堆中纸牌排列顺序为 1,3,21,3,2。

付出的总代价为 0+1+4+2+5=120+1+4+2+5=12。

输入格式

第一行包含两个整数 n,m。

第二行包含 n 个整数 v1,v2,…,vn。

第三行包含 m 个整数 a1,a2,…,am。

输出格式

一个整数,表示总代价的最小可能值。

数据范围

前 33 个测试点满足 2≤n≤3,1≤m≤5。
所有测试点满足 2≤n≤500,1≤m≤1000,1≤vi≤100,1≤ai≤n。

输入样例:

3 5
1 2 3
1 3 2 3 1

输出样例:

12

 

#include <bits/stdc++.h>
using namespace std;const int N = 1010;
int v[N], p[N], e[N], q[N], tot;
bool st[N];
int main()
{int n, m;scanf("%d%d", &n, &m);for (int i = 1; i <= n; i ++ ) scanf("%d", &v[i]);for (int i = 1; i <= m; i ++ ) scanf("%d", &p[i]);for (int i = 1; i <= m; i ++ )  if (!st[p[i]])  {e[++ tot] = p[i];  q[p[i]] = tot;  st[p[i]] = true; }int ans = 0;  for (int i = 1; i <= m; i ++ ){int k = p[i];for (int j = q[p[i]] - 1; j >= 1; j -- ) {ans += v[e[j]];q[e[j]] = j + 1;e[j + 1] = e[j];}e[1] = k, q[e[1]] = 1; }printf("%d", ans);return 0;
} 

 


http://www.ppmy.cn/news/51207.html

相关文章

代码不朽的读书笔记——软件的可维护性

软件的可维护性 软件维护的四种类型 纠正性维护 : 这是改BUG 适应性维护 : 这是更换操作系统与数据库等外部环境时的修改 完善性维护 : 这是有新需求的修改 预防性维护 : 确定可以改进质量或者是预防未来出现的BUG的修改 1. 坚持简单的原则最有助于提高可维护性. 2. 可维护…

centos7操作yum命令失败

前言设置网卡开机自动启动设置国内dns服务器系统修改CentOS-Base.repo中的地址 前言 刚安装完的CentOS7的系统&#xff0c;发现无法使用yum命令进行更新&#xff0c;在更新的时候会出现下面这种内容&#xff0c;为此问题有以下这些解决方案可以尝试。 One of the configured r…

Android之 颜色选择器

一&#xff0c;简介 1.1 计算机的颜色通常有两种表示方式&#xff1a; 光源模式RGB(Red红, Green绿, Blue蓝)&#xff0c;数值0-255 印刷模式CMYK(Cyan青, Magenta品红, Yellow黄, Black黑)&#xff0c;数值1-100 任何颜色都是由RGB或CMYK混合出来的&#xff0c;再加上透明度…

C++基础知识-2

本期我们接着来讲C的基础知识&#xff0c;没有看过的朋友可以先看看上一期 (16条消息) C基础知识-----命名空间_KLZUQ的博客-CSDN博客 目录 4.缺省参数 5.函数重载 6.引用 7.内联函数 8.auto关键字&#xff08;C11&#xff09; 9. 基于范围的for循环(C11) 10.指针空值nul…

WPF教程(七)--依赖属性(3)--附加属性

一、 只读依赖属性 以前在对于非WPF的功能来说&#xff0c;对于类的属性的封装中&#xff0c;经常会对那些希望暴露给外界只读操作的字段封装成只读属性&#xff0c;同样在WPF中也提供了只读属性的概念&#xff0c;如一些 WPF控件的依赖属性是只读的&#xff0c;它们经常用于报…

安卓Socket客户端(及刷新页面)

前言:最近学习了一波java语言和基础安卓开发,综合运用写一段安卓Socket客户端,实现控制小车的前进、后退、左转、右转,具体实现代码记录在下面代码 一、安卓Socket客户端 MainActivity.java package com.example.zyf;import java.io.IOException; import java.io.Output…

Python requests模块:发送HTTP请求和处理响应

目录 前言一、requests模块二、requests携带参数的方式三、get请求URL解码编码四、post请求携带数据编码格式五、get请求携带请求头六、post请求携带参数七、requests.session的使用(可以不用带cookie)八、requests模块其他参数九、response对象十、最后 前言 爬虫是什么&…

026:Mapbox GL加载矢量切片数据源

第026个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中加载矢量切片数据源。将矢量源添加到地图。使用其 tileset URL(mapbox:// + tileset ID)添加任何 Mapbox 托管的 tileset。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例…