首页 > 其他分享 >[比赛记录]ARC174

[比赛记录]ARC174

时间:2024-11-28 21:10:54浏览次数:11  
标签:... 比赛 记录 int top texttt ARC174 ss 位数

Final ranking: \(820\)。

A

平凡题。

不妨设选定操作的区间为 \([l, r]\),这一段的和为 \(s\)。

如果 \(c > 0\),则相对于原来的数组来说,操作后的和增加了 \((c - 1) \times s\)。我们期望选择最大的 \(s\) 来获得最大的增量。很显然我们需要求最大子段和。

如果 \(c < 0\),则相对于原来的数组来说,操作后的和减少了 \((|c| + 1) \times s\)。我们希望是 \(s\) 为负数并且最小,这样就能获得最大的增量。

综上,我们需要根据 \(c\) 的正负,求最大 / 最小子段和。求最大 / 最小子段和可以 dp。复杂度显然线性。submission

B

简单题。

答案显然满足可二分性。

不妨设当前二分中点为 \(m\)。购买星数 \(\le 3\) 是没有意义的。可以发现,最优策略最多有下面两种可能:全部购买四星或全部购买五星。两种策略都可能出现以下情况:剩下一点点钱不够买这种星星了,这时可以买另外一种星星。

将两种情况能够获得的平均星数取最大值,并与 \(3\) 比较即可。复杂度 \(O(\log n)\)。submission

C

期望题。不会期望。

D

小清新打表观察性质题。

首先看起来没什么思路。不妨打表,观察那些数满足条件。

int stk[110], top, ans;
int bin[100000], T, n;
bool check(int n) {
	int s = (int)sqrt(n);
	top = 0; while (n) stk[ ++ top] = n % 10, n /= 10;
	int ss = 0; while (top) {
		ss = ss * 10 + stk[top -- ];
		if (ss >= s) break;
	} if (ss == s) return 1; return 0;
}
signed main() {
	rep(i, 1, 10010)
		if (check(i)) cout << i << ' ' << (int)sqrt(i) << endl;
	rep(i, 1, 99999) if (bin[i]) cout << i << ' ' << bin[i] << endl;
}

把所有合法的数打印下来,不难发现,只有下面这样的数是满足条件的:

  • \(\texttt{999...8000...0}\),即一串 \(9\),一个 \(8\),后面跟上相同位数的 \(0\)。如 \(998000\)。

  • \(\texttt{999...9???...?}\),即一串 \(9\),后面跟上等位数的任意数。如 \(999837\)。

  • \(\texttt{1000...0???...?}\),即 \(1\) 后面跟上一串 \(0\),后面再跟上等位数的任意数。例如 \(1000873\)。

这样问题就变得简单。直接枚举 \(\sqrt{n}\) 的位数,进行暴力判断即可。复杂度 \(O(1)\)。corner case 死多。submission

E / F

并不会做。

标签:...,比赛,记录,int,top,texttt,ARC174,ss,位数
From: https://www.cnblogs.com/Link-Cut-Y/p/18575190

相关文章

  • 做题记录 2
    上一个写的太多了,卡爆了。所以再开一个。P4321随机漫游一道综合多种算法的好题。首先按照图上随机游走的套路,再依据\(n\)很小的限制,可以设出\(dp\)方程:设\(f_{s,u}\)表示当前走过的点集为二进制数\(s\),当前在\(u\)点,再走完所有点的期望步数。那么显然有\(f_{(1<<......
  • 2024.11.[~, 28]训练记录
    好,今天是noip2024前最后一次模拟。但是我参加不了noip。还是认真参加了模拟赛。自主复习就写训练记录吧。落下很多天了。今天的题疑似有点难订正了。那就先写今天的。11.28noip模拟今天的考试时间为了全真对标特意推迟了半个小时,写到最后还是有点困了。毕竟平常一点钟睡午......
  • 大数据学习记录,Python基础(2)
    数据类型字符串概述:由若干个字符组成字符序列,称之为字符串特点:字符串一旦被创建就不能被更改定义一个字符串s1="hello"字符串一旦被创建就不能被更改s1="hello"s1="world"#相当于将新的字符串内存中的地址值赋值给了s1,原本的"hello"的内容没有改变print(......
  • 2024.11.20训练记录
    pack设当前手上的钱数为x。二分一段一段跳的复杂度是对的。因为,如果下一段的代价总和sum<\dfrac{x}{2}。那么这一段的下一个数肯定也小于\dfrac{x}{2}。因为是从大到小排。所以还能继续选下一个数,引出矛盾。所以每段的代价总和只能大于\dfrac{x}{2}。那段数就是log级别的。......
  • 11.28 CW 模拟赛 赛时记录
    看题有外校的一起考,那我爆个\(0\)\(\rm{A}\)至少不能是简单题考虑找规律一类的东西,看能不能推出来?\(\rm{B}\)啊?也是需要脑子,多半不会做,应该也是规律题\(\rm{C}\)至少暴力可以打,争取达到高档暴力\(\rm{D}\)能打到这在想吧完了嘛时间分配:\(1\rm{h}+......
  • Synopsys 安装记录
    Synopsys安装记录安装环境概述系统:win11的wslubuntu18.04软件:芯王国提供的Synopsys2018完整的安装教程请参考:搭建属于自己的数字ICEDA环境(三):Centos7安装EDA(vcs2018、verdi2018等)IC工具以及脚本运行第一个工程_sclkeygen-CSDN博客解压遇到的问题压缩包分卷压缩的,在lin......
  • 这些不同类型的 DNS 记录承担着不同的职责,确保域名能够正确地解析到对应的服务、设备
    DNS(域名系统,DomainNameSystem)是用于将域名(如www.example.com)解析为IP地址的系统,它通过一系列的DNS记录来实现这一过程。不同类型的DNS记录对应不同的功能,下面是常见的几种DNS记录类型:1. A记录(AddressRecord)功能:将域名解析为IPv4地址。示例:CopyCodeexample......
  • 如何记录网站来访者的IP地址
    js如何记录来访者ipEdit2•2024年9月23日下午12:49•百科 JS如何记录来访者IP:使用服务器端语言、调用第三方API服务、结合前端和后端技术  在JavaScript中,直接获取来访者的IP地址并不容易,因为JavaScript运行在客户端环境中,而IP地址信息通常在服务器端获取。为......
  • 记录Vue Antd 表格RowSelection刷新列表后缓存问题
    起因 原来的代码//tsx部分<BaseTableoptions={tableData.options}columns={tableData.columns}data={tableData.data}/>constselectKeys=ref<string[]>([])//表格配置consthandleRowSelection={......
  • 11月27日记录(《代码大全》精读笔记)
    《代码大全(第二版)》是SteveMcConnell所著的经典软件开发书籍,其中关于变量和语句的讨论深刻影响了无数程序员的编程实践。以下是对这部分内容的精读体会:变量命名的重要性:变量的命名是编码中最为直观的文档形式。一个好名字能够清晰地传达变量的用途和含义,减少代码的阅读难度。书......