当前位置: 首页 > news >正文

2025.1.17——1200

2025.1.17——1200


Q1. 1200

Jellyfish has n n n green apples with values a 1 , a 2 , … , a n a_1, a_2, \dots, a_n a1,a2,,an and Gellyfish has m m m green apples with values b 1 , b 2 , … , b m b_1,b_2,\ldots,b_m b1,b2,,bm.

They will play a game with k k k rounds. For i = 1 , 2 , … , k i=1,2,\ldots,k i=1,2,,k in this order, they will perform the following actions:

  • If i i i is odd, Jellyfish can choose to swap one of her apples with one of Gellyfish’s apples or do nothing.
  • If i i i is even, Gellyfish can choose to swap one of his apples with one of Jellyfish’s apples or do nothing.

Both players want to maximize the sum of the values of their apples.

Since you are one of the smartest people in the world, Jellyfish wants you to tell her the final sum of the value of her apples after all k k k rounds of the game. Assume that both Jellyfish and Gellyfish play optimally to maximize the sum of values of their apples.
Input

Each test contains multiple test cases. The first line contains the number of test cases t t t ( 1 ≤ t ≤ 2000 1 \leq t \leq 2000 1t2000). The description of the test cases follows.

The first line of each test case contains three integers, n n n, m m m and k k k ( 1 ≤ n , m ≤ 50 1 \leq n, m \leq 50 1n,m50, 1 ≤ k ≤ 1 0 9 1 \leq k \leq 10^9 1k109) — the number of green apples Jellyfish has, the number of green apples Gellyfish has and the number of rounds of the game respectively.

The second line of each test case contains n n n integers a 1 , a 2 , … , a n a_1, a_2, \dots, a_n a1,a2,,an ( 1 ≤ a i ≤ 1 0 9 1 \leq a_i \leq 10^9 1ai109) — the values of Jellyfish’s green apples.

The third line of each test case contains m m m integers b 1 , b 2 , … , b m b_1, b_2, \dots, b_m b1,b2,,bm ( 1 ≤ b i ≤ 1 0 9 1 \leq b_i \leq 10^9 1bi109) — the values of Gellyfish’s green apples.

Do note that the sum of n n n and m m m over all test cases are both not bounded.


Q2. 1200

Andrey is just starting to come up with problems, and it’s difficult for him. That’s why he came up with a strange problem about permutations † ^{\dagger} and asks you to solve it. Can you do it?

Let’s call the cost of a permutation p p p of length n n n the value of the expression:

( ∑ i = 1 n p i ⋅ i ) − ( max ⁡ j = 1 n p j ⋅ j ) (\sum_{i = 1}^{n} p_i \cdot i) - (\max_{j = 1}^{n} p_j \cdot j) (i=1npii)(maxj=1npjj).

Find the maximum cost among all permutations of length n n n.

† ^{\dagger} A permutation of length n n n is an array consisting of n n n distinct integers from 1 1 1 to n n n in arbitrary order. For example, [ 2 , 3 , 1 , 5 , 4 ] [2,3,1,5,4] [2,3,1,5,4] is a permutation, but [ 1 , 2 , 2 ] [1,2,2] [1,2,2] is not a permutation ( 2 2 2 appears twice in the array), and [ 1 , 3 , 4 ] [1,3,4] [1,3,4] is also not a permutation ( n = 3 n=3 n=3 but there is 4 4 4 in the array).
Input

Each test consists of multiple test cases. The first line contains a single integer t t t ( 1 ≤ t ≤ 30 1 \le t \le 30 1t30) — the number of test cases. The description of the test cases follows.

The only line of each test case contains a single integer n n n ( 2 ≤ n ≤ 250 2 \le n \le 250 2n250) — the length of the permutation.

It is guaranteed that the sum of n n n over all test cases does not exceed 500 500 500.


Q3. 1200

Monocarp is going to make a purchase with cost of exactly m m m burles.

He has two types of coins, in the following quantities:

  • coins worth 1 1 1 burle: a 1 a_1 a1 regular coins and infinitely many fancy coins;
  • coins worth k k k burles: a k a_k ak regular coins and infinitely many fancy coins.

Monocarp wants to make his purchase in such a way that there’s no change — the total worth of provided coins is exactly m m m. He can use both regular and fancy coins. However, he wants to spend as little fancy coins as possible.

What’s the smallest total number of fancy coins he can use to make a purchase?
Input

The first line contains a single integer t t t ( 1 ≤ t ≤ 3 ⋅ 1 0 4 1 \le t \le 3 \cdot 10^4 1t3104) — the number of testcases.

The only line of each testcase contains four integers m , k , a 1 m, k, a_1 m,k,a1 and a k a_k ak ( 1 ≤ m ≤ 1 0 8 1 \le m \le 10^8 1m108; 2 ≤ k ≤ 1 0 8 2 \le k \le 10^8 2k108; 0 ≤ a 1 , a k ≤ 1 0 8 0 \le a_1, a_k \le 10^8 0a1,ak108) — the cost of the purchase, the worth of the second type of coin and the amounts of regular coins of both types, respectively.


Q4. 1300

Cats are attracted to pspspsps, but Evirir, being a dignified dragon, is only attracted to pspspsps with oddly specific requirements…

Given a string s = s 1 s 2 … s n s = s_1s_2\ldots s_n s=s1s2sn of length n n n consisting of characters p, s, and . (dot), determine whether a permutation ∗ ^{\text{∗}} p p p of length n n n exists, such that for all integers i i i ( 1 ≤ i ≤ n 1 \le i \le n 1in):

  • If s i s_i si is p, then [ p 1 , p 2 , … , p i ] [p_1, p_2, \ldots, p_i] [p1,p2,,pi] forms a permutation (of length i i i);
  • If s i s_i si is s, then [ p i , p i + 1 , … , p n ] [p_i, p_{i+1}, \ldots, p_{n}] [pi,pi+1,,pn] forms a permutation (of length n − i + 1 n-i+1 ni+1);
  • If s i s_i si is ., then there is no additional restriction.

∗ ^{\text{∗}} A permutation of length n n n is an array consisting of n n n distinct integers from 1 1 1 to n n n in arbitrary order. For example, [ 2 , 3 , 1 , 5 , 4 ] [2,3,1,5,4] [2,3,1,5,4] is a permutation, but [ 1 , 2 , 2 ] [1,2,2] [1,2,2] is not a permutation ( 2 2 2 appears twice in the array), and [ 1 , 3 , 4 ] [1,3,4] [1,3,4] is also not a permutation ( n = 3 n=3 n=3 but there is 4 4 4 in the array).
Input

Each test contains multiple test cases. The first line contains the number of test cases t t t ( 1 ≤ t ≤ 1 0 4 1 \le t \le 10^4 1t104). The description of the test cases follows.

The first line of each test case contains a single integer n n n ( 1 ≤ n ≤ 500 1 \le n \le 500 1n500), the length of s s s.

The second line of each test case contains a string s s s of length n n n that consists of the characters p, s, and …

It is guaranteed that the sum of n n n over all test cases does not exceed 5000 5000 5000.


Q5. 1300

You are given an array a a a of n n n integers, and q q q queries.

Each query is represented by two integers l l l and r r r ( 1 ≤ l ≤ r ≤ n 1 \le l \le r \le n 1lrn). Your task is to find, for each query, two indices i i i and j j j (or determine that they do not exist) such that:

  • l ≤ i ≤ r l \le i \le r lir;
  • l ≤ j ≤ r l \le j \le r ljr;
  • a i ≠ a j a_i \ne a_j ai=aj.

In other words, for each query, you need to find a pair of different elements among a l , a l + 1 , … , a r a_l, a_{l+1}, \dots, a_r al,al+1,,ar, or report that such a pair does not exist.
Input

The first line of the input contains a single integer t t t ( 1 ≤ t ≤ 1 0 4 1 \le t \le 10^4 1t104) — the number of test cases. The descriptions of the test cases follow.

The first line of each test case contains a single integer n n n ( 2 ≤ n ≤ 2 ⋅ 1 0 5 2 \le n \le 2 \cdot 10^5 2n2105) — the length of the array a a a.

The second line of each test case contains n n n integers a 1 , a 2 , … , a n a_1, a_2, \dots, a_n a1,a2,,an ( 1 ≤ a i ≤ 1 0 6 1 \le a_i \le 10^6 1ai106) — the elements of the array a a a.

The third line of each test case contains a single integer q q q ( 1 ≤ q ≤ 2 ⋅ 1 0 5 1 \le q \le 2 \cdot 10^5 1q2105) — the number of queries.

The next q q q lines contain two integers each, l l l and r r r (KaTeX parse error: Expected 'EOF', got '&' at position 9: 1 \le l &̲lt; r \le n) — the boundaries of the query.

It is guaranteed that the sum of the values of n n n across all test cases does not exceed 2 ⋅ 1 0 5 2 \cdot 10^5 2105. Similarly, it is guaranteed that the sum of the values of q q q across all test cases does not exceed 2 ⋅ 1 0 5 2 \cdot 10^5 2105.


------------------------思考------------------------

  • 贪心博弈+guess+数学+发现结论+思维


A1

  1. 贪心博弈:发现策略为将自己最小与其最大交换/不操作。

A2

  1. 神秘题:严谨证明太难,只能靠手玩/天马行空/打表/guess。

A3

  1. 有趣的数学题:贪心再数学,考虑回退。
  2. 另解可对函数二分

A4

  1. 观察各种情况发现结论。

A5

  1. 巧妙的思维,维护少许东西就可以作出回答。
  2. 原题区间询问可看作(充分必要): [ l , r ) [l,r) [l,r) 中是否存在与 a [ r ] a[r] a[r] 不相同的数。

------------------------代码------------------------

A1

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // 交互/调试 关
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
void _();
signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cout << fixed << setprecision(10);int T = 1;cin >> T;while (T--)_();return 0;
}void _()
{int n, m, k;cin >> n >> m >> k;int res = 0;vector<int> a{(int)1e10, 0};vector<int> b = a;for (int i = 0; i < n; i++){int x;cin >> x;res += x;a[0] = min(a[0], x);a[1] = max(a[1], x);}for (int i = 0; i < m; i++){int x;cin >> x;b[0] = min(b[0], x);b[1] = max(b[1], x);}res -= a[0] + a[1];if (a[0] < b[1])swap(a[0], b[1]);sort(a.begin(), a.end());sort(b.begin(), b.end());if ((k ^ 1) & 1){// bug(k);if (b[0] < a[1])swap(b[0], a[1]);}res += a[0] + a[1];cout << res << endl;
}

A2

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // 交互/调试 关
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
void _();
signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cout << fixed << setprecision(10);int T = 1;cin >> T;while (T--)_();return 0;
}void _()
{int n;cin >> n;vector<int> a(n + 1);for (int i = 1; i <= n; i++)a[i] = i;auto get = [&](){int res = 0, mx = 0;for (int i = 1; i <= n; i++)res += a[i] * i, mx = max(mx, a[i] * i);return res - mx;};int res = get();for (int i = n - 1; i; i--){for (int j = i; j < n; j++)swap(a[j], a[j + 1]);res = max(res, get());// for (int i = 1; i <= n; i++)//     cout << a[i] << " ";// cout << endl;}cout << res << endl;
}

A3

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // 交互/调试 关
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
void _();
signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cout << fixed << setprecision(10);int T = 1;cin >> T;while (T--)_();return 0;
}void _()
{int m, k, a1, ak;cin >> m >> k >> a1 >> ak;int res = 0;int m1 = m, m2 = 0;if (ak)m1 = max(0ll, m - k * min(ak, m / k));if (m1)m2 = max(0ll, m1 - a1);if (m2){res = m2 / k + m2 % k;if (m1 / k - m2 / k)res = min(res, m2 / k + 1);}cout << res << endl;
}
// void _()
// {
//     int m, k, a1, ak;
//     cin >> m >> k >> a1 >> ak;
//     int res = 0;
//     if (ak)
//         m = max(0ll, m - ak * min(k, (m + ak - 1) / ak));
//     if (m)
//         m = max(0ll, m - a1);
//     if (m)
//     {
//         res = m / k + m % k;
//         if ((m / k + 1) * k <= m)
//             res = min(res, m / k + 1);
//     }
//     cout << res << endl;
// }

A4

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // attention: interactive/debug
#define el cout << endl
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
#define bugv(VEC)           \cout << "bug:# ";       \for (auto val : VEC)    \cout << val << ' '; \el;void _();
signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cout << fixed << setprecision(10);int T = 1;cin >> T;while (T--)_();return 0;
}void _()
{int n;cin >> n;string s;cin >> s;s.front() = s.front() == '.' ? 's' : s.front();s.back() = s.back() == '.' ? 'p' : s.back();bool f = 0;map<char, int> cnt;for (auto v : s)cnt[v]++;if (!cnt['p'] || !cnt['s'])f = 1;if (cnt['p'] == 1 && s.back() == 'p')f = 1;if (cnt['s'] == 1 && s.front() == 's')f = 1;cout << (f ? "YES" : "NO");el;
}

A5

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // attention: interactive/debug
#define el cout << endl
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
#define bugv(VEC)           \cout << "bug:# ";       \for (auto val : VEC)    \cout << val << ' '; \el;void _();
signed main()
{ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cout << fixed << setprecision(10);int T = 1;cin >> T;while (T--)_();return 0;
}void _()
{int n;cin >> n;vector<int> a(n + 1), f(n + 1, -1);for (int i = 1; i <= n; i++){cin >> a[i];f[i] = a[i] == a[i - 1] ? f[i - 1] : i - 1;}int q;cin >> q;while (q--){int l, r;cin >> l >> r;int resl = -1, resr = -1;if (f[r] >= l)resl = f[r], resr = r;cout << resl << ' ' << resr;el;}el;
}

http://www.lryc.cn/news/523274.html

相关文章:

  • vite工程化
  • Mysql常见问题处理集锦
  • Android SystemUI——CarSystemBar添加到窗口(十)
  • 《重生到现代之从零开始的C++生活》—— 类和对象1
  • 《FMambaIR:一种基于混合状态空间模型和频域的方法用于图像恢复》学习笔记
  • 每日十题八股-2025年1月18日
  • 海康威视摄像头RTSP使用nginx推流到服务器直播教程
  • 搭建一个基于Spring Boot的书籍学习平台
  • Go 语言的slice是如何扩容的?
  • Apache Hive--排序函数解析
  • Java 接口安全指南
  • 合合信息名片全能王上架原生鸿蒙应用市场,成为首批数字名片类应用
  • 38.【3】CTFHUB web sql 报错注入
  • RC2在线加密工具
  • NVIDIA 下 基于Ubuntun20.04下 使用脚本安装 ros2-foxy 和 使用docker安装 ros2-foxy
  • STL容器-- list的模拟实现(附源码)
  • python——句柄
  • KubeSphere 与 Pig 微服务平台的整合与优化:全流程容器化部署实践
  • ESP8266-01S、手机、STM32连接
  • Web开发 -前端部分-CSS-2
  • 【QT用户登录与界面跳转】
  • 记录一次关于spring映射postgresql的jsonb类型的转化器事故,并使用hutool的JSONArray完成映射
  • 基于 HTML5 Canvas 制作一个精美的 2048 小游戏--day2
  • Django框架:python web开发
  • MySQL、HBase、ES的特点和区别
  • 联发科MTK6762/MT6762安卓核心板_4G智能模块应用
  • Windows7系统下载安装Source Code Pro字库
  • Navicat 17 功能简介 | 商业智能 BI
  • C# winodw TableLayoutPanel 料盒生产状态UI自动生成
  • 提示词的艺术----AI Prompt撰写指南(个人用)