首页 > 其他分享 >ucup 题目乱炖

ucup 题目乱炖

时间:2023-10-17 21:15:25浏览次数:53  
标签:限制 那么 frac submission 乱炖 可以 端点 ucup 题目

Season 2022

#6299. Binary String

如果 \(0\) 的个数小于 \(1\) 的个数那么就反转 \(01\) 以及反转序列,接下来假设 \(0\) 的个数大于等于 \(1\) 的个数。

称有 \(11\) 的序列为”未完全展开的“,那么序列的种类数有两个阶段:展开过程中和展开之后的。

在展开之后如果知道序列那么用 KMP 算最小周期即可计算不同的方案数,展开过程中显然均是不同的,所以只需要求出展开时间和展开后长什么样即可。

考虑三个连续的 \(01\) 长度为 \(x,y,z\),其中 \(x,z\) 是 \(1\),\(y\) 是 \(0\),如果 \(x>y\),那么在 \(x\) 完全展开之前,\(z\) 就会和 \(x\) 接触,那么总展开时间就是 \(x+z\),这相当于将 \(z,y\) 交换。因此可以用栈暴力模拟这个过程,然后首尾相消。这样得到的是若干段 \(0\) 和 \(1\),满足所有 \(1\) 在展开之前都不会碰到另外的 \(1\),那么展开时间和最终序列都是容易求的。时间复杂度 \(O(n)\)。

submission

#5503. Euclidean Algorithm

考虑 \(2a-b\) 这样的操作能造出啥数列。

手摸一下可以摸出结论:只会产生对于所有自然数 \(k\),\((k+1)a-kb\) 或者 \((k+1)b-ka\) 中的自然数。证明不难,归纳就行。

设 \(g=\gcd(a,b)\),则显然 \(g\leq a\),所以只有 \((k+1)a-kb\) 能产生 \(g\),解得 \(k=\frac{a-g}{b-a}\),也即要求 \(b-a\mid a-g\)。

不妨先转化一下变成 \(b-a\mid b-\gcd(a,b-a)\),用 \(a\) 代换 \(b-a\) 可以得到 \(a\mid b-\gcd(b,a)\)。枚举 \(g=\gcd(b,a)\),设 \(a'=\frac{a}{g},b'=\frac{b}{g}\),则要求 \(a'\mid b'-1\) 且 \(\gcd(a',b')=1\)。容易发现后面一个条件是废话,那么也就是要求 \(a'\mid b'-1\),对于所有 \(b\) 的约数 \(g\),总是有 \(d(\frac{b}{g}-1)\) 个 \(a\) 满足条件,那么枚举 \(\frac{b}{g}\),计算式就变成 \(\sum\limits_{i=1}^{n}{\lfloor\frac{n}{i+1}\rfloor d(i)}\)。对 \(i\) 除法分块,\(\sqrt n\) 计算 \(d(n)\) 前缀和即可做到 \(O(n^{0.75})\)。

submission

#6308. Magic

假设我们选定了一些位置,钦定其和下一个位置不同,那么要怎么判定存在一种方案?

也就是说我们需要让两个点不同,那么所有将两个区间覆盖成相同的都不能作为这两个点的最后覆盖。只有以 \(i\) 为右端点和以 \(i+1\) 为左端点的区间可以,也就是说我们要求这两个中至少一个成立。

那么现在需要找到限制之间的矛盾关系。对于两个同是左端点的限制,让左端点靠右的区间后做,一定最优,因为这样可以让两个左端点都 win,两个右端点也是同理。那么矛盾只在左右端点之间。如果两个区间的限制都包含了对面的限制,那么肯定有一个不行,这会导致矛盾。其余情况可以归纳说明没有矛盾。

如果我们再将 \(i\) 是右端点,\(i+1\) 是左端点的连边,限制其不能同时选,那么最多能满足的限制个数就是最大独立集的个数,可以 bitset 优化匈牙利算法做到 \(O(\frac{n^3}{\omega})\),常数很小,可以通过。

submission

#6410. Classical DP Problem

这个题和这场的 E 是一个题

标签:限制,那么,frac,submission,乱炖,可以,端点,ucup,题目
From: https://www.cnblogs.com/275307894a/p/17770657.html

相关文章

  • 题目:交换两个变量的值,不能使用第三个变量。
    1、加减思想#include<stdio.h>intmain(){   inta=3,b=5;   printf("交换前:a=%db=%d\n",a,b);   a=a+b;   b=a-b;   a=a-3;   printf("交换后:a=%db=%d\n",a,b);   return0;}存在问题:整形溢出2、按位异或(二进制)intmain(){......
  • 请在课上练习的基础上,实现输出加减法混合的运算题目列表。请提交代码及运行效果截图。
    importjava.util.Random;publicclassMathOperationGenerator{  publicstaticvoidmain(String[]args){    intnumberOfQuestions=10;//指定生成题目的数量    generateMathQuestions(numberOfQuestions);  }  publicstaticvoidgenerateMat......
  • 请完善课上的口算题卡代码,实现重复题目的检测、题目数字范围、加减乘除算式的参数化等
    importjava.util.HashSet;importjava.util.Random;importjava.util.Set;publicclassMathQuizGenerator{  publicstaticvoidmain(String[]args){    intnumberOfQuestions=10;//设定生成题目的数量    intminNumber=1;//题目数字的最小值 ......
  • 【NSSCTF逆向】【2023题目】《润!》
    题目解法这道题蛮搞的,不算简单。刚开始拿到这道题运行一下有些信息,是一道迷宫题,可能flag是我们输入的路线吧?先拿exeinfo来看看告诉我有壳,但是不要用upx-d来脱壳,结合题目的标签,知道这题有一个魔改upx壳。硬脱不行。说实话我对upx的了解很皮毛,网上搜了搜upx壳的详细源......
  • 经典多线程题目
    1.三种线程按顺序执行publicclassTest1{//privatestaticLoggerlog=Logger.getLogger(Test2.class);publicstaticvoidmain(String[]args)throwsInterruptedException{//创建三个线程按照线程a,b,c执行Threada=newPrintThread()......
  • #1 题目
    题目题(额头)目(眼睛),文章的眉目之间。传达文章的意思。文章标题可能有一些词性:名词反复出现频率最高的一个名词。好处是什么?不止一次出现,连成线,构成文章线索就出了一次,凭啥?说明全文围绕它展开。出现多次,但每一次含义都不同。一语双关多关。动词题目不能是纯动词(打、听、......
  • 一道有趣的线段树题目
    \(T4\)莫队首先我们需要知道一种统计答案的方法。我们记\(R_i\)表示右边第一个和他相同的位置。那么我们记\(a_i=\min(a_{i+1},R_i)\),那么贡献就是\(a_i-i+1\),所以我们最后就是要维护\(a_i\)就好了。但是实际上如果你要直接维护\(a_i\)没有任何性质是做不了的。......
  • 实现一个自动生成小学四则运算题目的命令行程序
    作业所属课程https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13016作业要求https://edu.cnblogs.com/campus/gdgy/CSGrade21-12/homework/13016作业目标实现一个自动生成小学四则运算题目的命令行程序结对项目艾山·依力哈木+3120005145一......
  • 题目集1-3的总结java
    题目集1-3的总结java21207218-石子颖一.前言    题目一是我刚接触java代码后的第一次练习,题目量有点多,但是都不太难,加上有之前的c语言的基础,这次只需要掌握一些java基本语法和利用面向过程的基本思维,只需要写一个类便可以直接按照题目所给的逻辑将代码简单写出,只有在最......
  • 题目集1-3的总结
    一.前言第一次题目比较简单,题目量偏多,主要是基本的程序设计和基本语法操作。这次题目包含的知识点有:if()选择结构、Java的输入对象的建立、for()循环的使用、Java的控制台输出、字符串的相关函数。第二次的题目量和第一次一样,难度适中,此次题目中包含的知识点有:定义类和创建对象、字......