- 博客(7)
- 收藏
- 关注
原创 __int128读写模板
网上已经能查到许多__int128的读写模板,但是都是基于getchar()的,像我这种习惯使用cin和cout进行读写的人就很不友好(不能关闭同步流了),所以考虑重载左移右移运算符进行读写,下面直接提供模板。//读入ostream& operator<<(ostream& os, __int128 t) { if (t==0) return os << "0"; if (t<0) { os<<"-";
2021-11-22 20:15:58 406
原创 The 2021 ICPC Asia Jinan Regional Contest - C Optimal Strategy - 2021ICPC济南站C题 组合数学
题目大意Ena和Mizuki正在玩一个游戏。他们面前有n个项目,编号从1到n。第i个项目的价值是.Ena和Mizuki轮流操作,而Ena先操作。在一次移动中,玩家选择一个尚未被拿走的物品并将其带走。当所有物品都被拿走时,游戏结束。任何一方的目标都是使他们拿走的物品的价值之和最大。鉴于双方都以最佳方式行动,有多少个可能的游戏过程?由于这个数字可能太大,你应该输出998244353的模数。如果存在某个整数i(1≤i≤n),使第i次移动中拿走的物品的指数不同,则认为两个过程不同。输入描述.
2021-11-17 19:37:33 3120 1
原创 The 2021 ICPC Asia Jinan Regional Contest - Problem D - 2021 icpc 亚洲区域赛济南站D题 (三分答案)
题目大意:给你一个数组,让你把这个数组变成一个等差数列,问最小的操作次数是多少。操作一次是指使一个数加1或者减1。思路:刚看到这道题的时候,很容易想到用直线去拟合数组,但是如果去枚举可能的斜率看到会超时,因为斜率的取值范围为-1e13到1e13,如果用枚举两点直接连线的斜率很显然也是会超时的(O())。如果我们令f(x)为当斜率为x时的最小操作次数,不难发现f(x)是一个凹凸性不变的函数,因此可以使用三分来枚举斜率。如何判断这个斜率下的最少操作次数?不难发现,当数组表示的点均匀分布在直线两侧时,
2021-11-16 08:57:05 856
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人