自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 【状压+搜索顺序剪枝+可行性剪枝】POJ-2676 Sudoku

Sudoku题目大意九宫格问题,又称数独问题。把一个9行9列的网格,再细分为9个3*3的子网格,要求每行、每列、每个子网格内都只能填1到9中的一个数字,每行、每列、每个子网格内都不允许出现相同的数字。  给出一个填写了部分格子的九宫格,要求填完九宫格并输出,如果有多种结果,则只需输出其中一种。解题思路(1)用DFS搜索每个空格子。  (2)用位运算记录格子状态。每行、每列、每个九宫格,分别用一个9位的二进制数保存哪些数字还可以填。对于每个位置,把它在的行,列,九宫格对应的数取 &

2021-03-31 21:11:25 164

原创 【去重+dfs可行性剪枝】HDU-2610 Sequence one

去重的优化Sequence one题目大意给定一个序列,包含n个整数,每个整数不大于231,输出它的前P个不递减序列,如果不够P个,就输出所有的。不递减序列见这个例子:3个整数{1, 3, 2},它的前5个序列是{1}、{3}、{2}、{1, 3}、{1, 2};输出时,首先按子序列长度排序,相同长度的,按出现顺序排序,所以{3}在{2}前面,{1, 3}在{1, 2}前面。这个例子里没有长度为3的不递减序列。1<n≤1000,1<p≤10000。解题思路1.去重的优化用某元素

2021-03-31 18:09:34 208

原创 【dfs+搜索之前的奇偶判断】HDU-1010 Tempter of the Bone

原来搜索之前就可以来优化拉!

2021-03-29 17:14:28 93

原创 【dfs+一点点状压】洛谷P1433 吃奶酪

吃奶酪题目大意房间里有n块奶酪。一只小老鼠要把它们都吃掉,问至少要跑多少距离?1≤n≤15。解题思路在测试数据比较水的情况下,可以用最优性剪枝。在DFS中,用sum记录当前最短距离,每次计算新的路径时,如果超过了sum,就退出。剪枝的效率和测试数据有关,如果碰巧有很恶劣的数据,会超时。罗总yyds~参考洛谷聚聚的题解,采用了一点点状压的思想来优化。dp[i][j]dp[i][j]dp[i][j] 表示的状态:之前的状态为二进制计算之后的 iii,当前为第 jjj 个点。参考代码#

2021-03-29 16:32:08 112

原创 【dfs+最优性剪枝】洛谷P1118 数字三角形

题目大意及解题思路见罗总博客。参考代码const int N = 20 + 10;#define ls rt << 1#define rs rt << 1 | 1#define lson l, mid, rt << 1#define rson mid + 1, r, rt << 1 | 1inline int readint() {int x; scanf("%d", &x); return x;}int e[N], a[N];in

2021-03-29 16:01:43 188

原创 Qualification Round 2020 - Code Jam 2020 BC题解

试了一下去年的题,tcl,前三道其实不难但是这个就恰好难到了我orz。思维 Nesting DepthNesting Depth题目大意给定一个数字组成的串,输出一个最短的串,使得每个数字 ddd 都被 ddd 个括号嵌套。如:解题思路按照相邻两个数的差值输出括号。参考代码#include<stdio.h>#include<iostream>#include<vector>#include<cstring>#include<c

2021-03-26 18:08:24 200

原创 【思维】Codeforces Round #709 (Div. 2) C. Basic Diplomacy

思维C. Basic Diplomacy题目大意nnn 个人,给出 mmm 天每天可以选的人。现在每天要选一个人,问能否构造一组答案,使得没有人被选的次数大于 ⌈m2⌉\lceil \frac m 2 \rceil⌈2m​⌉。解题思路竟然是很简单的思维题,分类一下就行了我们只需要考虑只能选他一人的天数大于 ⌈m2⌉\lceil \frac m 2 \rceil⌈2m​⌉ 的人的情况。即:设有一人编号是 iii,他可以被选的次数为 cnticnt_icnti​,如果找不到一个 cnticnt_i

2021-03-23 16:00:53 161

原创 Docker | Win10下安装+配置国内镜像源

Docker | Win10下安装+配置国内镜像源只能墙裂推荐这个视频,讲的很清楚很干脆:win10安装配置Docker并更换国内源个人遇到的小问题如下:需要配置环境变量按照默认安装docker之后,我的情况是还是要手动配置一下环境变量,不然系统的 path 里没有~配置镜像源配置镜像源的时候明明按照博主的操作了,搞完查看 docker info 还是没变化,很迷惑。自己摸索了另一种方式。主要是发现官方文档下还有个推荐噢:阿里云推荐操作也就是:docker-machine create

2021-03-23 01:25:46 536

原创 【前缀和】2021年度训练联盟热身训练赛第三场 K.Summer Trip

Summer Trip题目大意给定一个字符串,可以选择一个子数组,满足头尾均是这个子数组里唯一出现的字母。求合法的子数组个数。解题思路首先处理好每个字母出现个数的前缀和数组 sumsumsum 和出现位置的数组 pospospos。遍历字符串,每次求以当前字母为首个的合法子数组个数。具体方法为,可以知道当前字母的位置 iii 和当前字母下一次出现的位置 jjj,则求区间 [i,j−1][i,j-1][i,j−1] 内的字母有几种,即为合法子数组个数~需要注意的是,如果当前字母是最后一个,那么下一

2021-03-21 18:30:13 198 1

原创 【实数三分】2021年度训练联盟热身训练赛第三场 M.Zipline

Zipline题目大意如图:给定 w,g,r,hw, g, r, hw,g,r,h,求 Cable 的最小值和最大值,要满足中间点的高度不小于 rrr。解题思路最小值很简单,根据两边之和大于第三边,就是求两个杆顶点连线的长度。难点是求最大值,这里的方法是三分。要求的长度设为 f(x)f(x)f(x),则 f(x)=x2+(g−r)r+(w−x)2+(h−r)2f(x) =\sqrt {x^2+(g-r)^r}+\sqrt{(w-x)^2+(h-r)^2}f(x)=x2+(g−r)r​+(w−x

2021-03-21 18:21:53 179

原创 2021年度训练联盟热身训练赛第三场 J.Stop Counting!

Stop Counting!题目大意一开始给你一堆数,每个数都默认要选择,你可以决定不选择某一个连续区间的数。求剩下的数的最大的均值。解题思路其实最后结果只可能是选择从左边开始的连续的一段,或者从右边开始的连续的一段。代码里还写了前缀和,其实可以在线处理的~注意事项1.答案的初始值是 000,因为可以每个都不选。参考代码#include<stdio.h>#include<iostream>#include<vector>#include<cst

2021-03-21 18:13:53 257 1

原创 【概率dp】2021年度训练联盟热身训练赛第三场 G.Research Productivity Index

Research Productivity Index题目大意给一堆论文和每个通过的概率 pip_ipi​,给定一个指数的计算方法,求指数的最大期望值。解题思路首先要明确要求的是什么!!!求的是每种指数的最大期望。选择的每种论文数对应一种指数的期望,如选择 111 篇论文,就求通过 111 篇论文对应的期望;选择 222 篇论文,要考虑通过 1,21,21,2 篇的情况,以此类推。对当前的选择的论文数,期望是通过的不同数量的论文对应的指数 ×\times× 对应的概率的和。dp[i][j]dp

2021-03-21 18:07:41 171 1

原创 【思维+gcd】2021年度训练联盟热身训练赛第三场 B.Diagonal Cut

Diagonal Cut题目大意一个 N×MN \times MN×M 长方形画对角线,求线划分出的两半面积相等的小格子的个数。解题思路先举简单的例子,如果是 1×31\times 31×3,可以看到,对角线的中点一定会过最中间的格子的中点:而如果是 1×21 \times 21×2(有一个偶数),对角线的中点只会在最中间的边上:所以答案可以分为求有几个这样的组,如现在求 2×62\times62×6,可以看作是两个 1×31\times31×3:可以看到是有 222 个。那么这 222 个

2021-03-21 17:47:10 204

原创 【栈】2021年度训练联盟热身训练赛第三场 A.Circuit Math

A.Circuit Math题目大意模拟电路的与、或、非运算,输出最后的结果。解题思路用栈模拟。与、或运算需要两个运算数,则从栈里弹出两个数,运算结果压入栈。非运算弹出一个数,处理后压入栈。参考代码#include<stdio.h>#include<iostream>#include<vector>#include<cstring>#include<cstdio>#include<climits>#inclu

2021-03-21 17:24:03 202

原创 【思维+前缀和】Educational Codeforces Round 106 (Rated for Div. 2) C. Minimum Grid Path

思维+前缀和C. Minimum Grid Path题目大意从 (0,0)(0,0)(0,0) 到 (n,n)(n,n)(n,n),可以向右或向上走,每次的线段有花费,求最小花费。解题思路对于向右的线段,最优方法一定是花费最少的线段走最长,其他的都走最短(即走 111)。处理的时候就记录当前最小的 cic_ici​,用前缀和优化。对于向上的同理。具体解题的时候遍历所有的 cic_ici​,如 c1,c2,c3c_1,c_2,c_3c1​,c2​,c3​,那么看作 c1,c3c_1,c_3c1​

2021-03-19 13:43:24 195

原创 【线段树 | 区间修改】Just a Hook HDU - 1698

区间查询Just a Hook HDU - 1698题目大意一开始有 nnn 个数,编号 [1,n][1,n][1,n],初始值为 111。qqq 次查询,每次修改某区间的每个数为 i,i∈[1,3]i, i \in [1,3]i,i∈[1,3]。最后求所有数总和。解题思路1.线段树的区间修改。最后查询的是根节点的值。2.线段树 tree[i].valtree[i].valtree[i].val 代表区间 [l,r][l,r][l,r] 的总和。参考代码#include<stdio

2021-03-18 19:49:53 108

原创 【取余】Codeforces Round #708 (Div. 2) B - M-arrays

思维+取余B - M-arrays题目大意给你 nnn 个数,问你按照要求最少分成几个数组。要求:要么数组中只有一个数,要么数组中的相邻的两个数两两加和能被 mmm 整除。解题思路利用取余来做。将每个数除 mmm,统计余数对应的个数。1.除 mmm 之后余数为 000 的放到一组中。2.余数为 xxx 的和余数 m−xm-xm−x 的放到一个数组中。排列为:x,m−x,x,m−x...x, m-x,x,m-x...x,m−x,x,m−x...,能够这样排的要满足 abs(cntx−cntm−

2021-03-18 17:56:19 1377 6

原创 SQL语句和变量拼接技巧

SQL语句和变量拼接示例如在MySQL中写了这样一句:SELECT datetime,text FROM tweetscraper.content where text not like '李洪志' order by datetime desc;我们在python中的sql语句改写如下:1.把引号里的数据改成变量名称,此处假设变量名字是 name,因为python中字符串语句要用引号括起来,为避免和单引号重复,我们最外面使用一个双引号,如下:sql = "SELECT datetime,text

2021-03-17 13:04:24 3727

原创 SQL Server | 建表时使用小数类型

知识背景在使用的时候发现一个问题,由于编程的习惯,当数据库中需要存储小数的时候,就想当然的使用了float类型,可结果太让人意外了。数据库中存储了0.5没问题,当使用0.6的时候,得到的确是0.59999999999999998,使用1.6得到的是1.6000000000000001,0.3得到的是0.29999999999999999,很奇怪啊!在查找之后才明白原因,在SQL Server的帮助中这样描述:小数数据 Decimal 数据包含存储在最小有效数上的数据。在 SQL Server中,

2021-03-17 13:02:53 5958

原创 SQL Server | 导出数据库的表并插入到另一个服务器的数据库

需求描述在本地的电脑上有SQL Server,现在需要将数据库中某个表弄到服务器端的SQL Server上。操作环境win 10SQL Server 2008操作步骤1.打开 Management Studio,选择待导出的数据库 > 任务 > 生成脚本:2.选择要导出的表:3.点击 高级,进行一些设置:我需要导出表的结构和数据,所以我选了 架构和数据:4.下一步,导出即可。5.在另一个服务器上执行脚本即可。...

2021-03-17 12:51:50 1250

原创 【单调栈】2021年度训练联盟热身训练赛第一场 E.Early Orders

Early Orders题目大意给定一个序列 其中包括 NNN 个数,求一个字典序最小的子序列。要求包含 111 到 kkk 中的每一个数,每一个数有且仅出现一次。解题思路用单调栈来做,遍历给定序列的每一个数,如果大于栈顶的数,就压进栈。如果小于就考虑把栈里大于它的数弹出来,这样能使得字典序最小。但是在弹出栈顶数的时候要判断后面还有没有这个数,如果没有了就不能弹,否则不能满足题目要求。没有的话相当于就卡在了这个位置,它前面的数也都是固定的了。把所有的数都遍历完之后,栈里的数就是要求的答案。参考

2021-03-16 18:38:07 108

原创 【并查集】PAT甲级 1114 Family Property

1114 Family Property解题思路对每个有关系的 id 进行并查集的合并操作。合并时注意处理面积、房的套数。参考代码#include<stdio.h>#include<iostream>#include<vector>#include<cstring>#include<cstdio>#include<climits>#include<cmath>#include<algorithm&

2021-03-05 22:31:50 95

原创 【dfs】PAT甲级 1115 Counting Nodes in a BST

1115 Counting Nodes in a BST解题思路考察 dfs,在建树的过程中统计每层的节点数。注意事项认真看题目的定义,若当前 val <= root->val 则插入左子树。参考代码#include<stdio.h>#include<iostream>#include<vector>#include<cstring>#include<cstdio>#include<climits>#

2021-03-05 22:27:20 75

原创 【AVL树】PAT甲级 1123 Is It a Complete AVL Tree

1123 Is It a Complete AVL Tree看柳神的代码,非常之简洁,推荐~解题思路LL 型的时候:对根节点使用一次右旋(代码中即函数 R(),意思是进行右旋)LR 型的时候:对根节点的左节点先进行左旋,再对根节点进行右旋(代码中即函数 LR(),和形状命名相同)RR、RL 型同理。参考代码using namespace std;typedef long long LL;typedef double db;const int inf = 0x3f3f3f3f;const

2021-03-04 14:25:23 98 1

原创 【二分】PAT甲级1117 Eddington Number

(临时抱佛脚ing…)1117 Eddington Number题目大意给出 nnn 个数,求最大的 EEE,满足恰有 EEE 个值大于 EEE。解题思路EEE 越小,肯定更容易满足,因此 EEE 满足单调性,可以进行二分求解。注意事项1.使用 upper_bound() 函数,获得第一个大于某数的位置:int pos = upper_bound(d, d + n, mid) - d;2.最后的答案是 l−1l-1l−1 噢~参考代码const int N = 1e5 + 10;

2021-03-04 14:04:46 91 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除