2025.1.21——1300

news/2025/1/22 11:13:56/文章来源:https://www.cnblogs.com/jkkk/p/18685340

2025.1.21——1300


A 1300

Qingshan has a string \(s\) which only contains \(\texttt{0}\) and \(\texttt{1}\).

A string \(a\) of length \(k\) is good if and only if

  • \(a_i \ne a_{k-i+1}\) for all \(i=1,2,\ldots,k\).

For Div. 2 contestants, note that this condition is different from the condition in problem B.

For example, \(\texttt{10}\), \(\texttt{1010}\), \(\texttt{111000}\) are good, while \(\texttt{11}\), \(\texttt{101}\), \(\texttt{001}\), \(\texttt{001100}\) are not good.

Qingshan wants to make \(s\) good. To do this, she can do the following operation at most \(300\) times (possibly, zero):

  • insert \(\texttt{01}\) to any position of \(s\) (getting a new \(s\)).

Please tell Qingshan if it is possible to make \(s\) good. If it is possible, print a sequence of operations that makes \(s\) good.
Input

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

The first line of each test case contains a single integer \(n\) (\(1 \le n\le 100\)) — the length of string \(s\), respectively.

The second line of each test case contains a string \(s\) with length \(n\).

It is guaranteed that \(s\) only consists of \(\texttt{0}\) and \(\texttt{1}\).


B 1300

Tema decided to improve his ice cream making skills. He has already learned how to make ice cream in a cone using exactly two balls.

Before his ice cream obsession, Tema was interested in mathematics. Therefore, he is curious about the minimum number of balls he needs to have in order to make exactly \(n\) different types of ice cream.

There are plenty possible ice cream flavours: \(1, 2, 3, \dots\). Tema can make two-balls ice cream with any flavours (probably the same).

Two ice creams are considered different if their sets of ball flavours are different. For example, \(\{1, 2\} = \{2, 1\}\), but \(\{1, 1\} \neq \{1, 2\}\).

For example, having the following ice cream balls: \(\{1, 1, 2\}\), Tema can make only two types of ice cream: \(\{1, 1\}\) and \(\{1, 2\}\).

Note, that Tema do not need to make all the ice cream cones at the same time. This means that he making ice cream cones independently. Also in order to make a following cone \(\{x, x\}\) for some \(x\), Tema needs at least \(2\) balls of type \(x\).

Help Tema answer this question. It can be shown that answer always exist.
Input

Each test consists of multiple test cases. The first line of input contains a single integer \(t\) (\(1 \le t \le 10^4\)) — the number of test cases. Then follows the description of the test cases.

The first line of each test case contains a single integer \(n\) (\(1 \le n \le 10^{18}\)) — the number of ice cream types that Tema wants to make.


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

  • 字符串/贪心策略+思维/贪心策略/二分/数学


A

  1. 首先保证 \(0/1\) 数量相等,一个方向是不动原字符串/对称轴不变,构造出一个一对一的字符串,但是做不到。
  2. 只能在两边加串,贪心消除即可,操作次数至多 \(n\) 次。暴力拼接更新字符串即可,注意点就是 \(sub\) 下标要细节一下。本质是将首尾字符进行移动。

B

  1. 是道好题。二分找出上界,剩余部分贪心,思想上证明一下。

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

A

#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, ST)                     \for (int i = ST; i < VEC.size(); i++) \cout << VEC[i] << ' ';            \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;int cnt[2] = {};for (auto v : s)cnt[v - '0']++;if (cnt[0] - cnt[1]){cout << -1;el;return;}int l = 0, r = n - 1;vector<int> res;// int t = 1e3;while (l < r){// t--;// if (!t)//     break;if (s[l] - s[r]){l++, r--;continue;}if (s[l] == '1'){res.push_back(l);s = s.substr(0, l) + "01" + s.substr(l);}else{res.push_back(r + 1);// bug2(s.substr(0, r + 1), s.substr(r + 1));s = s.substr(0, r + 1) + "01" + s.substr(r + 1);}l++, r++;// bug2(l, r);}cout << res.size();el;bugv(res, 0);
}

B

#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, ST)                         \{                                         \for (int I = ST; I < VEC.size(); I++) \cout << VEC[I] << ' ';            \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;int l = 1, r = 1e10;while (r - l - 1){int mid = l + r >> 1;if (mid * (mid - 1) >> 1 > n)r = mid;elsel = mid;}int res = l;res += n - (l * (l - 1) >> 1);cout << res << endl;
}// void _()
// {
//     auto cal = [](int mid)
//     {
//         return mid * (mid - 1) >> 1;
//     };
//     for (int i = 2; i <= 20; i++)
//         bug2(i, cal(i));
// }

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

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

相关文章

OpenWRT24.10旁路由挂载USB移动硬盘,配置Samba4,作为NAS使用,解决中文不显示,乱码,解决断电重启后挂载失败问题

1. 为何选择OpenWRT 24.10,及如何配置旁路由,或者IPv6地址 看这篇:参OpenWRT24.10配置作为旁路由,并配置获取IPv4和IPv6地址 使用的OpenWRT固件是从这里下载的:https://openwrt.ai/ 2.挂载大容量USB移动硬盘 2.1 安装必备插件 kmod-fs-ntfs3 kmod-fs-ext4 kmod-fs-exfat…

如何迅速并识别处理MDL锁阻塞问题

TaurusDB推出MDL锁视图功能,帮助用户迅速识别并处理MDL锁阻塞问题,从而有效减少对业务的负面影响,提升数据库管理效率。摘要:TaurusDB推出MDL锁视图功能,帮助用户迅速识别并处理MDL锁阻塞问题,从而有效减少对业务的负面影响,提升数据库管理效率。本文分享自华为云社区《…

运维职业要求

摘抄知乎@Hi峰兄运维技能导图量化自己的技能深度 级别 水平 0   啥都不懂 1   理解基本概念,应用场景 2   基本的安装,配置,使用,常用配置修改,定位基本问题 3 根据实际情况定位、优化服务,了解服务核心模块运行机制,熟悉服务的各种使用方法 4 深…

关于RNN (循环神经网络)相邻采样为什么在每次迭代之前都需要将参数detach

转自:https://www.cnblogs.com/catnofishing/p/13287322.htmldetach到底有什么作用呢 首先要明确一个意识:pytorch是动态计算图,每次backward后,本次计算图自动销毁,但是计算图中的节点都还保留。 ​ 方向传播直到叶子节点为止,否者一直传播,直到找到叶子节点 我的答案是…

网站后台上传商品功能失效,如何排查和修复?

网站后台上传商品功能失效会影响正常的业务运营,因此需要尽快排查并修复。以下是详细的排查步骤和解决方案:确认前端页面加载情况: 首先,在浏览器中打开网站后台,检查页面是否完全加载,特别是上传商品相关的JavaScript和CSS文件。如果存在资源加载失败的情况,可能是由于…

云服务器频繁出现大流量提醒及访问异常

您好,当您频繁收到关于服务器流量过大的提醒,并且站点访问出现异常(如502 Bad Gateway或504 Gateway Timeout)时,这可能是由以下几个方面的原因造成的。下面我们将详细介绍这些问题及其对应的解决方案:流量来源分析:首先,确定流量来源是否合法。使用流量分析工具(如(网…

云服务器未预装网站管理系统

您好,当您购买新的云服务器时发现未预装网站管理系统,这通常是因为不同服务商提供的初始镜像有所不同。以下是一些常见原因及其解决方案:操作系统选择:在选择操作系统时,请注意某些版本可能默认不包含网站管理助手。如果您希望获得预装的建站工具,建议选择带有集成环境的…

IDEA如何快速回到上一次编辑的地方

前言 大家好,我是小徐啊。我们在使用IDEA开发Java应用的时候,经常是需要在不同的代码文件里面来回编辑的,这个是开发的常态。 如果小伙伴们不清楚IDEA如何快捷地切换代码文件,就会极大地影响开发效率。今天,小徐就来介绍其中的一种切换方式:回到上一次编辑的地方。 如何回…

织梦网站修改后台:掌握织梦CMS的后台管理

问题描述 织梦CMS是一款流行的CMS系统,用户可以通过后台管理系统进行网站内容和模板的修改。了解如何使用织梦CMS进行后台修改是提升网站管理能力的关键。 解决方案登录后台管理使用管理员账号登录织梦CMS后台管理系统。编辑内容在“内容管理”模块中编辑或添加新的文章、产品…

关于浏览器或者调试工具阻止前端请求

1、Block request URL(拦截前端请求某个接口)2、Block request domain(拦截前端请求某个域名的所有请求)

请问PHP网站如何修改网页代码?

修改PHP网站的网页代码,需要以下步骤:访问服务器:使用FTP客户端或服务器控制面板的文件管理器,访问存储PHP网站文件的服务器。 定位文件:在服务器上找到包含要修改的网页代码的PHP文件,通常位于网站根目录下的特定文件夹中,如public_html或www。 下载文件:将PHP文件下载…

请问如何修改公司网站图片?

修改公司网站图片可以提升网站的视觉效果,使其更加吸引人。以下是修改公司网站图片的基本步骤:备份原始图片:在进行任何修改之前,备份原始的图片文件。 准备新图片:准备需要上传的新图片。确保图片格式为JPEG、PNG或GIF,并且大小适中。 登录后台管理系统:使用管理员账户…