首页 > 其他分享 >The final

The final

时间:2023-06-21 23:34:02浏览次数:33  
标签:gcd 构造 sumb suma 第一段 final 等差数列

The end

T1

构造题 n/k为偶数很好构造,每组直接前面拿n/k/2个,后面拿n/k/2个

n/k为奇数需要想一想,首先可以把1~n分成n/k段,每段选一个放到一组里,按照以上方法处理n/k-3段,使每组各数之和相等。再来看前三段,可以把第三段提出来,用前1,2段构造一个等差数列。如何构造?只需要找到需要的等差数列的第一个数,以及第一段的第一个数,第二段的数就是等差数列的数-第一段的数。然后选第一段的下一个数,并且第二段也应该选下一个数,所以等差数列的数+=2。如果目前等差数列的数以及超了我需要的,那就减小到我需要的数的最小值。

无解有两个部分,首先要判断n!=k,其次看1到n的和是不是k的倍数,缺一不可

T2

第一问很轻松,线段树随便搞

第二问有点ex,先可以想到暴力枚举每一段区间求gcd,时间复杂度n*n,A不了

考虑用map优化,ans[gcd]存每个gcd的数量,p[i][gcd]存以第i个数结尾的gcd的数量,然后从p[i-1]的状态转移,ans[gcd]+=p[i][gcd]。

T3

时间复杂度n*n*a的方法很好想,开三维就好了,但是肯定A不了,最多开两维,但是这道题限制比较多,只有两维又不够

经过一番分析,可以得到答案只和suma和sumb有关。

所以我们可以存多个答案,vector<pair> f[i][j]表示到第(i,j)的所有有效suma和sumb。

我们不能确定suma和sumb谁更大更好,所以我们都存下来,但是我们知道,如果一种方案的suma和sumb都比另一种大,那肯定是更好的

然后转移的时候,正常是把(i-1,j)和(i,j-1)的状态全部添加给(i,j),但是有无用的状态,所有我们使用归并排序·,维护一个suma递增,sumb递减的数列,如果某一项不满足,就直接舍那一项。

T4

概率dp

 

标签:gcd,构造,sumb,suma,第一段,final,等差数列
From: https://www.cnblogs.com/zhuzc/p/17497298.html

相关文章

  • [极客大挑战 2019]FinalSQL
    https://buuoj.cn/challenges#[%E6%9E%81%E5%AE%A2%E5%A4%A7%E6%8C%91%E6%88%98%202019]FinalSQL测起来有点感觉过滤很奇怪casewhenmidunionif'and-!|...逻辑运算符与、或都测起来有点奇怪,同或因为过滤了!没法用,所以用异或mysql>select0^1;+-----+|0^1|+-----+|......
  • 对象的finalize调用链和clone调用链一样,必须手工构造
    classA{publicA(){System.out.println("Aconstruct");}@Overridepublicvoidfinalize(){System.out.println("Afinalize");}}classBextendsA{String......
  • JOI Final 2020 题解
    JOI2020JustLongNeckties首先一定是贪心将两个从小到大排。然后考虑维护\(a_i-b_i\)的前缀max与\(a_{i+1}-b_i\)的后缀max即可。https://qoj.ac/submission/113106JOI2020JJOOII2考虑维护出每个点往前跳\(k\)个J/O/I跳到哪里。于是枚举右端点,然后往前跳找......
  • JAVA面试题解惑系列(四)——final、finally和finalize的区别
    关键字:java面试题finalfinallyfinalize作者:臧圩人(zangweiren)final、finally和finalize的区别是什么?这是一道再经典不过的面试题了,我们在各个公司的面试题中几乎都能看到它的身影。final、finally和finalize虽然长得像孪生三兄弟一样,但是它们的含义和用法却是......
  • [C++/PTA] 2017Final 圆周率山
    题目要求为了参加学校的社团风采展,怡山小学数学组的同学们决定画一座圆周率山,以宣传圆周率。已知圆周率为:3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253......
  • [C++/PTA] 2017Final进位与借位
    题目要求凤湖小学二年级的陈老师吃惊地发现班上的同学竟然可以分成三类,一类总是可以正确地完成三位整数加减法(GroupA);一类总是可以正确地完成三位整数的加法,但对于减法运算来说,总是忘记借位的处理(GroupB);剩下的人总是忘记加法的进位,也总是忘记减法的借位(GroupC)。现在请给出......
  • final&不可变性
    一、什么是不可变性(Immutable)如果对象在被创建后,状态就不能被修改,那么它就是不可变的这个对象不能被修改指:对象指向(引用)不可变字段不可变成员变量不可变案列演示:person对象,age和name属性都不能再变/***不可变的对象,演示其他类无法修改这个对象*pub......
  • java关键字native、static、final详解
    native: native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问。JNI是Java本机接口(JavaNativeInterface),是一个本......
  • 【Clickhouse】ReplaceingMergeTree引擎final实现合并去重探索
    前言在OLAP实践中,在有数据更新的场景中,比如存储订单数据,我们经常会用到ReplaceingMergeTree引擎来去重数据,以获取数据的最新状态。但是ReplaceingMergeTree引擎实现数据的去重合并的操作是异步的,这样在实际查询的时候,其实是仍然有一部分数据是未进行合并的。为了保证统计数据的准......
  • 8.8 final 关键词
    final定义不能被继承的类;不能被覆写的方法,常量最重要作用,定义全局常量publicclassHelloWorld{publicstaticfinalStringINFO="mldn";//定义全局常量;publicstaticvoidmain(Stringargs[]){StringstrA="www.mldn.cn";Stringstr......