赛时寄了,然后本人很气愤,于是写下此篇题解。 (没关系,这可是 \({\color{black}j}{\color{red}{iangly}}\) 江老板都没有做出来的绝世大好题啊!!!) 然而看过题解之后 \(O(n)\) 算法还是一概不会,于是只能思维不够 DS 来凑,然而 D 题撑死也不会有什么奇葩东西,所以就选择了线段树板子来做区间
A 只需要让最大值最大,\(\and\) 过后 \(z\) 不会变大,所以最优策略一定是 \(z\) 或上 \(a\) 中的某个数。 B 判掉答案是 \(0\) 和 \(1\) 的情况,剩下的情况序列中一定有 \(0\),只需要全局取一遍 mex,这样所有数都变成了非 \(0\) 数,然后再全局取一遍 mex 即可,所以答案是 \(2\)。 C 把 \(
白嫖的一道省选题...... 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 typedef long long LL; 6 int dig[15],pos; 7 LL dp[15][10][15],ans[2][10]; 8 9 LL dfs(int pos,int val,int cnt,bool lead,bool li
(如此简短的题目给人一种莫名的压迫感......) 题目中定义一个数的权值求解函数:F(x) = An * 2n-1 + An-1 * 2n-2 + ... + A2 * 2 + A1 * 1. 观察可知:权值的表达式与数的位数相关,再加上要分离每个位上的数字,那么就不难想到数位DP了。 dp[pos][j]表示pos位下小等于j的元素个数,代
在二进制数上进行数位DP,在dp数组中就记录num0和num1,方便递归到边界时判断该数是否为round number,是则加1。 套用记忆化递归模板: 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 int dp[40][40][40]; 5 int dig[12]; 6 /*求一个区间内Round Numbers(二进
和HDU2089差不多,但是本题是求包含某个数的个数,采用代码第15行的方式实现,当然,也可以求不包含的个数,最后用总数减去也可以得到答案。 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 typedef long long LL; 5 const int N=30; 6 int dig[N]; 7 LL dp[N]
本题是数位DP的入门题,可以用来浅浅了解一下这种强大的计数类工具。 以下代码是采用记忆化递归的写法,效率很高。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 int a[20]; 6 int dp[20][2]; 7 8 int dfs(int pos,bool sta,boo
需求:输入卡号的时候,四位一空格显示,控制16位有效字符 实现过程 <input type="tel" v-model="code" ref="code" @input="cardCount(e)" placeholder="请输入" /> 解决方法如下: cardCount() { // 获取当前光标的位置 var caret =this.$refs.code.selec
# -*- coding: utf-8 -*- """ 手机屏幕截图的代码: screenshot.py """ import subprocess import os import sys,re from PIL import Image import os import time,random import cv2 import aircv as ac import numpy as np # SCREENSHOT_WAY 是截图方法,经过
绘制基本的图形 直线line() 矩形rectangle() 圆circle() 椭圆ellipse() 多边形polylines() 填充的多边形fillPoly() 文本putText() 示例:动态绘制一个矩形框(通过键盘选择矩形、圆),要求实时性,基本不延迟 import cv2 import numpy as np bg = cv2.imread('./images/bg.jpg') print(
题目 (可能有点长,但是请耐心看完,个人认为比官方题解好懂:P) 首先需要注意,对于任意节点i上的一个棋子,如果在一种走法中它走到了节点j,另一种走法中它走到了节点k,那么这两种走法进行完后,棋子占据的节点集合不可能相同,因为在这两种走法中,节点i必有两个子树中的棋子数量不同。所以,题目
方法一:先平方,再排序 时间复杂度:O(n+nlogn) => O(nlogn) Python class Solution: def sortedSquares(self, nums: List[int]) -> List[int]: for i in range(len(nums)): nums[i] = nums[i] ** 2 nums.sort() return nums Java class Sol
MySQL常用函数 cast() 语法 cast(expression as TYPE) cast()函数将任何类型的值转换为具有指定类型的值。目标类型可以是以下几种之一:binary、char、date、datetime、time、decimal、signed、unsigned。 示例 将字符串转换为整数 select cast('123' as signed) as num 结果为 12
141. 环形链表 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅
Preface 终于把三年前的坑填了QAQ。 这道题简直可以算卡常卡空间比赛了qwq,在线膜拜考场 AC 巨佬 Orz Analysis 这道题和 [CF229D]Towers 可以说除了恶心人的数据几乎一模一样awa 法一:\(36pts\) 首先把前缀和数组 \(s\) 求出来。 对于 \(n \le 500\),显然直接用 \(O(N^3)\) 的区间
HN 省队集训 DAY1 array 没看懂题解? difference 给定一个数组,数组中的元素都为正整数,下标从 0 开始编号,它们 互不相同 ,可以执行两种操作来确定数列 \(a\) 中的元素 给定一个位置,交互器返回这个位置的值(最多执行 2 次) 给定一个集合 \(S\) ,交互器会以任意顺序返回集合内元素两两
实现需求:将客户一样拜访次数列合并成一行展示。如图 实现代码 <template> <div> <el-table :data="tableData" :span-method="objectSpanMethod" border style="width: 100%; margin-top: 20px" > <el-tabl
思路: 1) 先判断 0<m<=n <= size,不满足直接返回原来的 头节点 2) 先找到 m的前一个节点 m_pre 和 n的后一个节点 n_pos. 把反转的部分反转之后。连接m_pre 和 n_pos. 3) 如果m_pre为null,说明反转的部分包含 头结点,则返回新的头结点,也就是 n. 如果m_pre不为null,则返回旧的头结点。
#include<iostream> using namespace std; template<typename T> struct comp_function{ bool operator()(const T &lhs,const T &rhs){ return lhs<rhs; }}; //比较大小的方法 comp_function<int> comp_a; // 调整堆 temp
"""贪吃蛇""" import random import sys import time import pygame from pygame.locals import * from collections import deque SCREEN_WIDTH = 600 # 屏幕宽度 SCREEN_HEIGHT = 480 # 屏幕高度 SIZE = 20 # 小方格大小 LINE_WIDTH
main.py import sys import time import pygame from pygame.locals import * import blocks SIZE = 30 # 每个小方格大小 BLOCK_HEIGHT = 25 # 游戏区高度 BLOCK_WIDTH = 10 # 游戏区宽度 BORDER_WIDTH = 4 # 游戏区边框宽度 BORDER_COLOR = (40, 40, 200) # 游戏区边框
目录1. BufferedInputStream 介绍2. BufferedInputStream 源码分析(基于jdk1.7.40)3. 示例代码 1. BufferedInputStream 介绍 BufferedInputStream 是缓冲输入流。它继承于FilterInputStream。 BufferedInputStream 的作用是为另一个输入流添加一些功能,例如,提供“缓冲功能”以及支
题面传送门 我去我TM没有去掉freopen调了一下午\(\cdots\) 思路 因为如果第\(i\)分钟可以控制住疫情,那么第\(i+1\)以及之后的都是可以的,所以,就可以二分了。 然后就是\(check\)函数如何写,有一个显而易见,就是每一个军队都要尽量靠近根节点,这样才会拦掉更多的点,所以,就要把每个军队向
题面传送门 思路 一看到这道题,立刻想到\(SPFA\),结果一个单向的东西交上去,\(T\)了一个点。 然后,单向\(SPFA\)的搜索面积要远大于从两头开始找,于是,我就改变了思路,分别从两端开始找,分别找出到每个点的最小值和最大值,这样,每一个点一减取个最大值就完事了。 代码 #include<bits/stdc++.
CF1691D link Rd795 题解滞销,帮帮我(误 首先对于这个式子,不难注意到左边的 \(\max\) 只有 \(O(n)\) 种取值,所以想到枚举最大值是一件很自然的事。 那么可以变成枚举一个最大值 \((\mathrm{pos}, v)\),然后记 \(\mathrm{minL}\) 和 \(\mathrm{maxR}\) 为它能向左向右最长能延申到的地