- 博客(28)
- 收藏
- 关注
原创 电影Acwing103
朴素做法:开一个数组,每输入一个会的语言,让数组对应下标的位置加一。对于每部电影,可以通过它的语言下标来找到某个语言会的人数。在比较结果时,用对组pair,pair间的大小比较规则为:first对应的元素先比较,first对应相等则比较second。然后开出一个sum数组,sum数组下标对应的即为uni数组的下标。本题,可以将人会的语言和电影的语言全部存入同一个数组中,对这个数组进行离散化处理得到数组uni。离散化是用来将一组稀疏的数据映射为一组紧凑的数据,从而提高数据的查找等处理效率。
2024-04-16 16:52:26 343
原创 题目激光炸弹
本题可以简单的视为一个边长为R的正方形在5000*5000的带权区域内进行扫描,求这个正方形所能框住的全部区域的权值的最大值。本题解法为二维前缀和。一维前缀和数组为给定a的所有前缀之和。
2024-03-20 15:58:44 214
原创 【蓝皮书】T97约数之和
每个括号中的内容均为等比数列,等比数列求和可以采用公式法,但是,对除法运用模运算不存在分配性(可以通过逆元解决,这里先不进行讨论)。考虑采用分治法的思想解决问题。所谓分治法即将问题分解为多个子问题,对子问题求解后,再合并为原问题。利用乘法分配律(类似组合的过程,从每个括号里选一个数,然后乘起来),可以将因数相加转化为多组乘法。的所有因数之和,数据范围很大,用暴力不太合适。算数基本定理:任何大于1的正整数都能。那么可以将输入的A进行质因数分解,本题应用到一些数学知识。的因数集合可以表示为。
2024-01-10 09:53:01 915
原创 【蓝皮书】奇特的汉诺塔
基础的汉诺塔通常使用递归的方式求解,可以确定递归的边界条件:仅剩最后一个盘子。我们从三个柱子的汉诺塔开始思考。因为中转柱子不能再放置新的盘子了。
2024-01-02 16:58:22 368
原创 【蓝皮书】费解的开关
因而,我们可以枚举对所有第一行进行操作后的状态,然后从第一行向后逐行地推。因第一行总共可以进行2 ^ 5 = 32次操作,复杂度大幅下降。可以采用二进制来枚举对第一行所有的操作。对于一个5 * 5的0、1矩阵,我们可以对任意元素以及他的上方,下方,左方,右方元素取反,问通过几次操作可以将整个矩阵转换为1构成的矩阵。通过观察可以发现,如果第 i 行状态已经确定并且不再修改,若要更改第i + 1行,那么就只能修改i + 2行的对应列。如果采用暴力求解,需要枚举每个位置的开关情况。单二进制取反操作采用。
2023-12-27 22:00:23 369 1
原创 【Acwing T93】PAT计数
可以考虑利用类dp的思想解题。开三个数组(也可以是一个二维的数组),分别记录P的数量,PA的数量,以及PAT的数量。经过观察可以发现,PAT子串的数量实际上等于T前面PA子串的数量;PA子串的数量等于A前面P的数量。本题题意很简单,对于给定的由P、A、T构成的字符串,对PAT顺序的子串进行计数。具体转移方式在代码中。
2023-12-18 20:37:29 40
原创 【蓝皮书】递归实现指数型枚举
对于输入的N,采用N位二进制数来表示状态,如果选择第n位,那么对应二进制数的位置为1。例如,N=3时,选择1,2,不选择3,对应的二进制数位011。在这种构造下,解答树转化为了如下的一颗二叉树,求解的过程实际上等同于对这颗二叉树进行先序遍历。0代表选择,1代表不选择。输出会产生全排列的情况原因在于,未修改的print函数是对如下的解答树进行遍历。正确的解答树应当在每一个递归层都是从比上一层更大的数开始。在此基础上限制一下排列的位数,print()函数里增加一个sit变量用以控制输出位数。
2023-12-15 14:56:20 26
原创 【蓝皮书学习记录】Part1 Acwing89
例如16可以拆成4 * 4,4可以拆成2 * 2,因而我们计算时可以将2的平方的结果存储起来,在计算4的平方时,可以直接调用这个结果。也就是把计算2 * 2 * 2 * 2 =16的过程转化为计算2 * 2 = 4, 4 * 4 = 16。那么 a ^ b = (a ^ (b / 2)) ^ 2。快速幂的简单题目,关键是理解快速幂的数学原理。将b转写为二进制,b / 2相当于b左移一位。这个公式可以采用二进制的方式进行优化。计算的步骤少了,因而计算的速度更快。
2023-11-29 17:12:35 36 1
原创 uni-app学习记录五
在uni-cloud云空间内可以创建数据表,并可以直接通过前端的代码实现数据表的增删改查操作。创表后要注意对表结构进行修改,重点修改表中数据的增删改查权限。也就是如下的模块"permission":{ "read": true, "creat": false, "updata": false, "delete": false },每次修改完表结构后,需要在HbuilderX上完成更新表结构的操作如下图:...
2021-12-02 11:17:24 449
原创 Java中的正则表达式
一篇写的很好的关于正则表达式的文章不过关于{}说的不是很详细。[this]{}以此为例:[this]{3}表示匹配this中的任意三个字符,也就是this的任意长度为三的子串(注意,任意长度为三的子串皆可,如tis,his)[this]{1,3}表示匹配this中的任意一到三个字符,也就是this的任意长度为一到三的子串。...
2021-11-12 17:01:39 232
原创 uniapp学习记录三
插值基础形式: <template> <view> <view>Message: {{ msg }}</view> </view> </template> <script> export default { data() { return {
2021-11-04 19:48:22 143
原创 uni-app学习记录二
一切相关的学习内容均可以从uniapp官网中获取。本节主要包括1、Vue3的基础构成2、注释的书写一、Vue3的基础构成Vue3包括三个一级节点:template,script以及style具体组成形式如下: <template> <view> 注意必须有一个view,且只能有一个根view。所有内容写在这个view下面。 </view> </template>
2021-11-02 16:42:35 102 1
原创 常用的c++stl
c++作为面向对象的设计语言,stl使其无比出色用了许久的stl至今还要查笔记(惭愧。。),今天总结一下。这是set的用法。这里非常重要的是set可以去重和自排序,并且可以使用find函数进行o(lgn)的查找。...
2021-11-01 18:21:18 49
原创 uniapp学习记录一
页面跳转前需要在pages目录下新建一个用于跳转到的界面两种页面跳转的实现方式一、标签在需要跳转的内容前加上快捷键(u + n)二、.js脚本在页面上添加单击事件(框框内)在script的methods内增加openinfo事件在下面用unva快捷键生成导向代码块,随后填充内容...
2021-11-01 18:20:31 60
原创 uni-app设置新的代码块
以自定义媒体代码块为例在工具中找到代码块设置,点开其中的Vue代码块点开后在右侧就可以设置需要的代码块了注意,代码块更改完后需要保存才能够生效。
2021-09-22 15:33:00 639
原创 微信App开发出现的问题
运行媒体app时微信开发者工具报错(没有设置AppID)解决方式见连接bug的解决方式申请uniapp AppID:在uniapp网站直接申请就可以申请微信小程序AppID:见文章微信开发者工具的AppID的获取
2021-09-22 10:03:10 108 1
原创 2021-05-13
import matplotlib.pyplot as pltimport numpy as npimport random# (-1, 2)# 初始化原始种群def ori_popular(num): popular = [] for i in range(num): x = random.uniform(-1, 2) # 在此范围内生成一个随机浮点数 popular.append(x) return popular# 编码,也
2021-05-13 18:31:00 63
原创 4.26记录
在用matplotlib.pyplot时可能由于是版本问题这段代码会报错import matplotlib.pyplot as pltfrom numpy import ones, diag, c_, zerosfrom scipy.optimize import linprogplt.rc('text',usetex=True);plt.rc('font',size=16)c = [-0.05,-0.27,-0.19,-0.185,-0.185]A = c_[zeros(4),diag([0
2021-04-26 21:01:15 136 2
原创 A Little Contest 2
判正误这题数据水到爆炸啊用一个pow竟然就能过。我用快速幂咋整都过不了当场心态炸裂#include <bits/stdc++.h>///为啥快速幂过不了哪?using namespace std;int main(){ int T; scanf("%d",&T); long long a,b,c,d,e,f,g; while(T--){ ...
2020-02-06 23:25:03 138
原创 A Little Contest
(https://ac.nowcoder.com/acm/contest/3002/G)我的思想:1,给出两个标记点first,last然后依次移动并将移动到位置的字母总数减一并维护ans。但是感觉不太好写就扔掉了。2.暴力查找,结果超时了而且我太菜了想不出新方法了(困。。。)结果一直交一直t,然后就放弃了。代码如下:#include <bits/stdc++.h>usi...
2020-02-05 10:05:03 87
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人