- 博客(36)
- 收藏
- 关注
原创 7-15 周游世界分数 30(堆优化版dijkstra)
周游世界是件浪漫事,但规划旅行路线就不一定了…… 全世界有成千上万条航线、铁路线、大巴线,令人眼花缭乱。所以旅行社会选择部分运输公司组成联盟,每家公司提供一条线路,然后帮助客户规划由联盟内企业支持的旅行路线。本题就要求你帮旅行社实现一个自动规划路线的程序,使得对任何给定的起点和终点,可以找出最顺畅的路线。所谓“最顺畅”,首先是指中途经停站最少;如果经停站一样多,则取需要换乘线路次数最少的路线。
2024-03-08 13:42:28 771 2
原创 数位DP(记忆化搜索写法)
写记忆化搜索写的太少了,就很容易写错,一般记忆化搜索的函数参数是当前的位置和前面搜索的状态。这题里n>=2其实不用管,因为题目给出的l是大于10的,前导零也不需要考虑。
2023-10-25 18:48:40 149
原创 字符串型数位DP(记忆化搜索)
vp的时候写这题的时候一直想的是状态压缩,实际上我们不需要关心当前状态有哪些数字,只需要关注当前不同的数字个数,于是状态从2^10变成10,然后我们还需要两个状态来表示当前状态和下界、上界的关系。这题用记忆化搜索会比较好写,如果说后面的数字可以任意选并且我们之前算过的话就可以直接返回。
2023-10-13 12:35:17 144
原创 容斥dp+矩阵快速幂
之前vp的时候太糊涂了,本来早都写完了的……忘记d是天数了,需要经过的是d-1条边,所以需要让d减一,还有就是这题的mod居然是1e9+9?
2023-10-13 12:10:40 96
原创 并查集的启发式合并
如果说a论点可以直接推出b论点,那么贪心的想确定a论点一定是更优的,没必要再从y出发了,把从y连出去的边改成从x连出去。如果只是这样暴力的改边,时间复杂度太高,所以需要加上并查集的启发式合并,把a论点和b论点合并成一个点,每次合并出边数少的那个论点。有n个论点,每个论点都有多个依赖的论点(如果为0,这个论点是不可被证明的),只有它的前置论点全部正确,它才可以被证明正确。现在可以选择一个论点作为基础论点,假设它是正确的,求最大可以得到的正确的论点的数量。
2023-09-17 20:28:06 120
原创 7-4 疫情防控(离线查询+并查集)
给你一个无向图,n个顶点,m条边,进行D次操作,每次删除一个顶点的同时给出Q组询问,询问两点是否联通。暴力做法:每次询问都跑一遍dfs,能骗22分。
2023-07-14 12:04:20 151
原创 2020吉林省赛-Problem I. World Tree(贪心)
对于当前节点u的两个子节点v1,v2来说,如果我们先访问v1再访问v2,以u为根的子树(未访问节点只考虑v2中的,不考虑当前节点的子树中的)产生的贡献是s1[v1]*s2[v2];: 给你一棵树,树上每个点有两个权值a[i]和b[i],每经过一个节点u可以获得a[u]*Σb[v]的贡献,其中v是还未访问过的节点。首先dfs出每个节点作u为根节点的子树中a和b的总和,记为s1[u] 和s2[u].对于当前访问的u节点来说,它的子节点必定是还未访问过的。考虑访问子节点的顺序,我们用贪心的思想:。
2023-05-16 13:37:31 81
原创 2020吉林省赛-Problem J. Situation(对抗搜索--记忆化搜索优化/alpha-beta优化)
题意:给你3x3的棋盘,初始时上面有一些棋子,‘O’代表Alice的棋子,‘X’代表Bob的棋子,‘.'代表还未放棋子,在所有空位都放上棋子后计算得分,如果Alice的棋子连成了一行一列或者是对角线则+1分(如果多行多列多条对角线都连成了一行,可叠加),如果是Bob的话就-1分。有多组测试用例,每组测试样例首先给出一个which,which==1代表Alice先下,which==0代表Bob先下,再给你3x3的初始棋盘,Alice想要最大化得分,Bob想要最小化得分,问最终得分是多少?
2023-05-16 12:51:57 124
原创 集训-2021四川省赛-ABDEHJKLM
第一行输入三个整数n,m,q (1≤n,m≤1e5,1≤q≤5e5).第二行输入n个整数w1,⋯,wn (1≤wi≤100).接下来m行每行输入两个相异的整数u,v (1≤u,v≤n),表示节点u与v间存在边.接下来q行每行输入两个整数p,a (1≤p≤n,1≤p≤a),分别表示一个人所在的节点编号和他能接受的最大辣度.由于A先出牌并且B会知道A出的是什么牌,那么A的出牌顺序其实一点都不重要,A出石头的话,B一定会出布,没有布就出石头,石头也没有了就出剪刀,我们用0表示石头,1表示布,2表示剪刀。
2023-05-12 22:37:41 1127
原创 集训19--7-11 清点代码库
上图转自新浪微博:“阿里代码库有几亿行代码,但其中有很多功能重复的代码,比如单单快排就被重写了几百遍。请设计一个程序,能够将代码库中所有功能重复的代码找出。各位大佬有啥想法,我当时就懵了,然后就挂了。。。这里我们把问题简化一下:首先假设两个功能模块如果接受同样的输入,总是给出同样的输出,则它们就是功能重复的;其次我们把每个模块的输出都简化为一个整数(在范围内)。于是我们可以设计一系列输入,检查所有功能模块的对应输出,从而查出功能重复的代码。你的任务就是设计并实现这个简化问题的解决方案。
2023-04-21 18:48:31 58
原创 集训18--7-15 千手观音(拓扑排序)
人类喜欢用 10 进制,大概是因为人类有一双手 10 根手指用于计数。于是在千手观音的世界里,数字都是 10 000 进制的,因为每位观音有 1 000 双手 ……千手观音们的每一根手指都对应一个符号(但是观音世界里的符号太难画了,我们暂且用小写英文字母串来代表),就好像人类用自己的 10 根手指对应 0 到 9 这 10 个数字。同样的,就像人类把这 10 个数字排列起来表示更大的数字一样,ta们也把这些名字排列起来表示更大的数字,并且也遵循左边高位右边低位的规则,相邻名字间用一个点分隔,例如。
2023-04-21 17:16:28 152
原创 集训18--7-14 森森旅游(dijkstra)
好久没出去旅游啦!森森决定去 Z 省旅游一下。Z 省有 n 座城市(从 1 到 n 编号)以及 m 条连接两座城市的有向旅行线路(例如自驾、长途汽车、火车、飞机、轮船等),每次经过一条旅行线路时都需要支付该线路的费用(但这个收费标准可能不止一种,例如车票跟机票一般不是一个价格)。Z 省为了鼓励大家在省内多逛逛,推出了:在 i 号城市可以用 1 元现金兑换 ai 元旅游金(只要现金足够,可以无限次兑换)。城市间的交通即可以使用现金支付路费,也可以用旅游金支付。
2023-04-21 16:21:09 67
原创 集训17--7-10 冰岛人
2018年世界杯,冰岛队因1:1平了强大的阿根廷队而一战成名。好事者发现冰岛人的名字后面似乎都有个“松”(son),于是有网友科普如下:冰岛人沿用的是维京人古老的父系姓制,孩子的姓等于父亲的名加后缀,如果是儿子就加 sson,女儿则加 sdottir。因为冰岛人口较少,为避免近亲繁衍,本地人交往前先用个 App 查一下两人祖宗若干代有无联系。本题就请你实现这个 App 的功能。
2023-04-20 17:28:24 83
原创 集训17--7-9 特立独行的幸福
对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数。1 是一个幸福数。此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68,3 次迭代后得到 100,最后得到 1。则 19 就是幸福数。显然,在一个幸福数迭代到 1 的过程中经过的数字都是幸福数,它们的幸福是依附于初始数字的。例如 82、68、100 的幸福是依附于 19 的。而一个的幸福数,是在一个有限的区间内不依附于任何其它数字的;其就是依附于它的的幸福数的个数。
2023-04-20 13:26:29 87
原创 2022年天梯赛-全国总决赛-L2-3 龙龙送外卖
题目描述:龙龙是“饱了呀”外卖软件的注册骑手,负责送帕特小区的外卖。帕特小区的构造非常特别,都是双向道路且没有构成环 —— 你可以简单地认为小区的路构成了一棵树,根结点是外卖站,树上的结点就是要送餐的地址。每到中午 12 点,帕特小区就进入了点餐高峰。一开始,只有一两个地方点外卖,龙龙简单就送好了;但随着大数据的分析,龙龙被派了更多的单子,也就送得越来越累……看着一大堆订单,龙龙想知道,从外卖站出发,访问所有点了外卖的地方至少一次(这样才能把外卖送到)所需的最短路程的距离到底是多少?
2023-04-16 11:59:09 465
原创 第五届太原理工大学程序设计竞赛新生赛(同步赛)(K-冠军预言)(分治)
我们可以看题中给的图,假设我们要求的是2号球队获胜的概率,我们只要求得从1(也就是u)这个编号开始的4 (也就是n/2) 个人每个人获胜的概率,以及从5(也就是u+n/2)这个编号开始的4个人中每个人获胜的概率,那么2获胜的概率就是从编号1开始的4个人中2号球队获胜的概率乘上从5这个编号开始的某个编号为k的概率*a[2]/(a[2]+a[k]) (其中k可以取5~8,可以用循环求,将所有概率累加起来,具体见代码)。保证 n 是 2 的整数幂次。dfs求的是 从u这个编号开始的n个人,每个人获胜的概率。
2023-04-16 11:06:50 227
原创 自己训练--2022蓝桥杯省赛题
进制规定了数字在数位上逢几进一。X 进制是一种很神奇的进制,因为其每一数位的进制并不固定!例如说某种 X 进制数,最低数位为二进制,第二数位为十进制,第三数位为八进制,则 X 进制数321转换为十进制数为65。现在有两个 X 进制表示的整数 A 和 B,但是其具体每一数位的进制还不确定,只知道 A 和 B 是同一进制规则,且每一数位最高为 N 进制,最低为二进制。请你算出 A−B 的结果最小可能是多少。请注意,你需要保证 A 和 B 在 X 进制下都是合法的, 即每一数位上的数字要小于其进制。分析。
2023-04-04 23:46:09 123
原创 集训15--7-15 至多删三个字符(动态规划)
给定一个全部由小写英文字母组成的字符串,允许你至多删掉其中 3 个字符,结果可能有多少种不同的字符串?
2023-03-31 15:58:53 329 3
原创 集训15--7-10 重排链表
给定一个单链表 L1→L2→⋯→Ln−1→Ln,请编写程序将链表重新排列为 Ln→L1→Ln−1→L2→⋯。例如:给定L为1→2→3→4→5→6,则输出应该为6→1→5→2→4→3。
2023-03-31 14:17:40 106 4
原创 集训15--7-13 森森快递(贪心+线段树)
主要思路:将订单按右端点排序,然后按顺序尝试完成每个订单,完成当前订单假设能获得运输量s,我们就要将这个订单区间的所有数都减去s,再做下一个订单。区间修改,区间查询,需要用带懒标记的线段树。(QWQ关于为什么这样贪心是对的,可以看看其他题解~)LL c[N];LL n,m;}tr[4*N];return;pushup(u);LL v=1e18;return v;
2023-03-30 22:41:36 128
原创 集训15--7-11 图着色问题分数 (DFS)
图着色问题是一个著名的NP完全问题。给定无向图G=(V,E),问可否用K种颜色为V中的每一个顶点分配一种颜色,使得不会有两个相邻顶点具有同一种颜色?但本题并不是要你解决这个着色问题,而是对给定的一种颜色分配,请你判断这是否是图着色问题的一个解。
2023-03-30 22:21:21 108
原创 训练--小菲菲爱数数
我是这样考虑的,【0~2】(3*(3+1)个子数组) 【4~6】(3*(3+1)个子数组) 【8~9】(同理)这三个区间的所有子数组一定都不包含2,统计出这些个数,然后用n*(n+1)/2减去这些数, 就能得到包含质因子2的子数组的个数。2 2 假设2在这些地方出现了(下标为3,7的地方)那么哪些子数组会包含质因子2呢?将每个质因子它出现的下标用数组存起来。
2023-03-25 19:06:46 111 1
原创 2023年中国传媒大学程序设计大赛(同步赛)--J题-RGB(状态压缩DP)
给你一个M*N的网格,用红绿蓝(RGB)三种颜色填充,使得任意两个相邻的格子(上下左右四个方向相邻)颜色不同,请问总共有多少种不同的涂色方案?结果对1e9+7取模。
2023-03-24 22:28:20 191
原创 选拔赛4---7-9 表达式树括号
请编写程序将表达式树按中缀表达式输出,并填加必要的括号,要求括号不能冗余,即保证正确运算次序所需的最少括号。如a∗(b+c)和a+(b−c)中的括号是必要的,而a+(b∗c) 的括号则是冗余的。假定表达式树中的运算均为二元运算,只涉及加、减、乘、除运算。
2023-03-23 23:39:23 112
原创 选拔赛4---7-3 约瑟夫问题变形
编号为1…N的N个小朋友玩游戏,他们按编号顺时针围成一圈,按顺时针次序报数,从第1个人报到第M个人出列;然后再从下个人开始报到第M+1个人出列;再从下一个人开始报到第M+2个人出列……以此类推不断循环,直至最后一人出列。请编写程序按顺序输出出列人的编号。
2023-03-20 22:28:18 132
原创 选拔赛4---7-12 最小公倍树(kruskal)
对于一个无向完全图G=(V,E),点u与点v的边权为u,v的最小公倍数lcm(u,v).称G的最小生成树为V的最小公倍树.现在给出L,R,请你给出V=L,L+1,...,R的最小公倍树LCT(V).
2023-03-20 21:50:41 143
原创 选拔赛4---7-13 又见子串(动态规划DP)
现在有两个字符串A和B,请你给出子串B在文本A中出现的次数(可以非连续出现)。即:设A={a1...an},B={b1...bm},请给出有多少组不同的I={i1...im}使得ai1=b1,ai2=b2...aim=bm。不幸的是,本题的。由于答案可能过大,请输出对10007取余后的结果。
2023-03-20 13:25:31 189 2
原创 选拔赛4---7-11 口罩发放
为了抗击来势汹汹的 COVID19 新型冠状病毒,全国各地均启动了各项措施控制疫情发展,其中一个重要的环节是口罩的发放。某市出于给市民发放口罩的需要,推出了一款小程序让市民填写信息,方便工作的开展。小程序收集了各种信息,包括市民的姓名、身份证、身体情况、提交时间等,但因为数据量太大,需要根据一定规则进行筛选和处理,请你编写程序,按照给定规则输出口罩的寄送名单。
2023-03-19 23:39:22 79 1
原创 选拔赛3---7-10 红豆生南国
那么,我们来采红豆吧!假设红豆树是这个样子的:红豆结点5正序遍历正序遍历正序遍历逆序遍历逆序遍历逆序遍历对于给定的一棵完全二叉红豆树以及一些要采撷的结点,计算每次采撷能采到的红豆数量。注意:我们采的点,可能是红豆,也可能不是红豆。采撷一个结点的意思是,把这个结点及这个结点的子树的全部结点从树中采下来。例如:若采结点7,这是红豆结点,我们将获得1颗红豆;若采结点11,这不是红豆结点(而是一个枝结点!),我们将获得红豆树的一枝,包含2个红豆结点(8和2)。
2023-03-19 10:34:57 1189
原创 选拔赛3--7-14 还原文件(DFS)
7-14 还原文件分数 30全屏浏览题目切换布局作者 陈越单位 浙江大学一份重要文件被撕成两半,其中一半还被送进了碎纸机。我们将碎纸机里找到的纸条进行编号,如图 1 所示。然后根据断口的折线形状跟没有切碎的半张纸进行匹配,最后还原成图 2 的样子。要求你输出还原后纸条的正确拼接顺序。图1 纸条编号图2 还原结果。
2023-03-18 22:55:54 165
原创 训练-那就别担心了(两种解法,拓扑排序+记忆化搜索)
下图转自“英式没品笑话百科”的新浪微博 —— 所以无论有没有遇到难题,其实都不用担心。博主将这种逻辑推演称为“逻辑自洽”,即从某个命题出发的所有推理路径都会将结论引导到同一个最终命题(开玩笑的,千万别以为这是真正的逻辑自洽的定义……)。现给定一个更为复杂的逻辑推理图,本题就请你检查从一个给定命题到另一个命题的推理是否是“逻辑自洽”的,以及存在多少种不同的推理路径。例如上图,从“你遇到难题了吗?”到“那就别担心了”就是一种“逻辑自洽”的推理,一共有 3 条不同的推理路径。
2023-03-18 12:51:38 156
原创 牛客挑战赛67-B数据结构
还看到了其他的处理方法,map里套pair,pair中两个值记录了cnt['0']-cnt['2'],cnt['1']-cnt['2'],就是固定’2‘,考虑其他字符相对'2'的个数。'0'--->1, '1'--->3000010(要取大一点!这样其实考虑的是三个字符各自的个数,于是我取了个余hh,没想到过了,相当于减去k个('0'+'1'+'2')的值。比赛时我的构造是:'0'--->1, '1'--->N '2'--->N*N。
2023-03-18 12:18:11 192
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人