自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AcWing 908. 最大不相交区间数量(贪心)

这个题的思路和上一题的思路一样,就是包括不同的区间。题目代码一样能过。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.Comparator;import java....

2019-12-29 20:41:46 231

原创 AcWing 905. 区间选点(贪心)

贪心部分的第一题,贪心的思路不固定,代码没有模板。题目这个题我总把区间端点排序,总是选择后端点,判断能容进几个区间。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.C...

2019-12-29 20:14:19 198

原创 AcWing 338. 计数问题(数位dp)

这个题的意思是分别求 0 - 9 在 1 - n中出现的个数,是个数位动态规划的内容,难度还是比较大的。题目特殊情况:x在第1位上出现的次数(不用考虑前半段):bcdefg∈[00000,bcdefg] , ans += bcdefg+1x在最后一位上出现的次数(不用考虑后半段):如果g<x,那么不存在这样的数,ans += 0如果g==x,那么有一个这样的数,ans +=...

2019-12-29 05:06:09 365

原创 AcWing 900. 整数划分(完全背包)

题目先看题目,类比完全背包问题把1,2,3, … n分别看做n个物体的体积,这n个物体均无使用次数限制,问恰好能装满总体积为n的背包的总方案数import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;clas...

2019-12-27 17:55:45 197

原创 AcWing 282. 石子合并(动态规划)

典型的分组dp问题,f[i][j]表示区间i到j的状态,然后在看题目。题目import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static BufferedReader...

2019-12-27 03:08:14 159

原创 AcWing 899. 编辑距离(动态规划)

这个题是最短编辑距离的一个小应用,直接套进去就可以了。题目需要注意的是原本每次计算时都重新new了一个f[][] 发现爆内存,是因为每次虚拟机都会创建新的一个二维数组,但是f仅仅指向一个地址。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import j...

2019-12-25 23:10:01 244

原创 AcWing 902. 最短编辑距离(动态规划)

这个题也做到过,貌似是鹅厂的压轴题,用三种方式编辑两个字符串的相似距离。题目集合:将a[1~ j]变成b[1~ j]的操作方式属性:min考虑过程比较难,从末尾开始考虑,三种操作方式上着手。以下来自AcWing网友整理,很细致有三种操作,所以有三个子集ok子集划分完了考虑状态转移的时候先考虑如果我没有进行这个操作应该是什么状态然后考虑你进行这一步操作之后会对你下一个状态造成什么...

2019-12-24 05:46:29 2373

原创 AcWing 897. 最长公共子序列(动态规划)

动态规划经典问题。题目f[i][j] 表示第一个序列的前i个字母,第二个序列的前j个字母构成的公共子序列。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { stat...

2019-12-24 00:06:34 316

原创 AcWing 895. 最长上升子序列(动态规划)

这题是dp经典问题 最长上升子序列在10-08写过本题的题解,但是有点遗忘,再补一次,并且基础打卡是按照章节来的,也方便今后查找。这是10-08的题解:最长上升子序列主要是两次遍历,f[i] = Math.max(f[i], f[j] + 1);import java.io.BufferedReader;import java.io.InputStreamReader;import j...

2019-12-22 04:16:12 234

原创 AcWing 9. 分组背包问题(背包)

分组背包,每组只能拿一个。题目大同小异,在每个组中判断,f[i][j]表示前i组,总体积不大于j的最大数。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { stati...

2019-12-22 03:50:19 150

原创 AcWing 5. 多重背包问题 II (多重背包)

这道题相比上个多重背包,数据范围扩大,直接遍历各个物品的数量会TLE,这个地方用到一个巧妙地优化方法:二进制。例如1,2,4,8,16,…16以内的正整数能用20 21 22 23 凑出来,所以把物品打包来处理,不会遗漏任何数字。题目import java.io.BufferedReader;import java.io.IOException;import java.io.Input...

2019-12-21 02:01:56 222

原创 AcWing 4. 多重背包问题(背包)

在完全背包的基础上加了数量限制,思路也很简单,在完全背包基础上循环一边限制量就可解决。题目import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static Buffere...

2019-12-20 21:28:57 179

原创 AcWing 898. 数字三角形 (动态规划)

经典问题,数字金字塔。题目倒着求一编**import java.io.*;class Main{ static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static PrintWriter pw = new PrintWriter(System.out); ...

2019-12-20 19:38:33 176

原创 AcWing 3. 完全背包(动态规划-完全背包)

完全背包只需要在01基础上把体积改成顺着过一遍,就可以了。题目import java.io.*;class Main{ static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static PrintWriter pw = new PrintWriter(System.o...

2019-12-20 18:15:31 117

原创 AcWing 2. 01背包问题 (动态规划-01背包)

从这节开始又回答了令人头疼的动态规划,不过基本都是基础问题,不会像暑期打卡的某些题目一样难的没谱。题目背包问题的证明网上太多太多了,这里就不给出了,上传图片是在太麻烦。import java.io.*;class Main{ static BufferedReader br = new BufferedReader(new InputStreamReader(System.in))...

2019-12-20 18:06:09 208

原创 AcWing 894. 拆分-Nim游戏 (博弈论)

题目数论章节中的最后一题,也是博弈论的最后一节。堆ai拆分成b1,b2后,一个重要的性质就是sg(b1,b2) = sg(b1) ^ sg(b2)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;im...

2019-12-20 05:52:20 323

原创 AcWing 893. 集合-Nim游戏(博弈论-SG)

这个博弈论设计到Mex运算和SG函数,比上次得稍微复杂一点,但是宗旨不变,就是利用异或运算,0为必败,非零必胜。题目定理1:对于集合S,mex(S)=mex({x1,x2…})=S中 没有出现的 最小非负整数定理2:sg(n)=mex({sg(i1),sg(i2),sg(i3)…})。定理3:sg(G1)^ sg(G2) ^ sg(G3)…sg(Gn)为n个有向图的异或和,对于n个有向图游...

2019-12-20 04:31:03 191

原创 AcWing 892. 台阶-Nim游戏 (博弈论-公平组合游戏)

另一类的公平组合游戏,台阶问题。这一题的方法是我们只需要去异或奇数项(奇数台阶,从1开始)。证明方法类似,如果对手动了偶数项台阶的石头那我们模仿他动奇数项台阶的石头,这样的话又能维护奇数项台阶石子相同。import java.io.*;class Main{ static BufferedReader br = new BufferedReader(new InputStreamR...

2019-12-18 04:10:31 346

原创 AcWing 891. Nim游戏 (博弈论-公平组合游戏)

开始学习博弈论基础,博弈论是非常非常难的一种题,大致分为几种类型。公平组合游戏有向图游戏Mex运算SG函数本题是最简单的Nim游戏,也称作拿石子游戏。题目...

2019-12-18 02:10:09 256

原创 AcWing 890. 能被整除的数 (容斥原理)

题目这道题容斥原理,还是有点复杂的,主要体现在代码实现上,理论上用韦恩图非常好证明,也非常好理解。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static ...

2019-12-16 05:21:59 347

原创 AcWing 889. 满足条件的01序列 (卡特兰数)

题目受不了这个csdn一会儿上传不了图一会儿打不开编辑页。卡特兰数是 C(2n,n) - C(2n,n - 1) = 分子C(2n, n)分母 n + 1用上节的逆元和求组合数直接给出,需要注意的是在同余mod情况下除法必须用逆元,直接除会错误。import java.io.BufferedReader;import java.io.IOException;import java.io...

2019-12-15 23:16:16 277

原创 AcWing 888. 求组合数 IV (大数运算)

组合数第四节,对于Java来说就是一个大数训练。题目import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.math.BigInteger;class Main { stat...

2019-12-15 05:05:20 200

原创 AcWing 887. 求组合数 III (卢卡斯定理)

题目组合数第三节,这次给的ab非常大达到1e18的级别,显然预处理硬算不行,这题用到卢卡斯定理。需要取模的题目真是一个取模漏了数字就超了…代码中C的公式是C约分后的计算方式,不难理解。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import ja...

2019-12-15 04:45:36 214

原创 AcWing 886. 求组合数 II (排列组合 + 逆元 + 快速幂)

第二节,数据范围扩大。采用逆元优化,快速幂优化。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static BufferedReader br = new Buf...

2019-12-15 02:04:36 199

原创 AcWing 886. 求组合数 I (排列组合)

第一节,各个数据范围都比较小,采用预处理,直接输出答案。题目import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static BufferedReader br = n...

2019-12-15 02:03:32 144 2

原创 AcWing 884. 高斯消元解异或线性方程组(高斯消元)

AcWing 题目其实和高斯消元解线性方程组一样,就是加法变成了异或运算,可能会有点绕。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static Buffered...

2019-12-14 05:10:13 172

原创 AcWing 883. 高斯消元解线性方程组(高斯消元)

这完全就是线性代数的矩阵解方程但是代码写起来还是有点麻烦的。题目浮点数比较还是用一个误差计算合适,Java有时候也不能完美的处理浮点数运算。类似这样double xxx = 1e-6;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import ja...

2019-12-09 04:56:12 259

原创 AcWing 204. 表达整数的奇怪方式(中国剩余定理)

题目之前没学基础课之前曾经数学块多次死在中国剩余定理上,这次要恶补了。求解线性同余方程组目前正在理论证明中…代码还未开始写。

2019-12-07 06:25:52 260

原创 AcWing 878. 线性同余方程 (扩展欧几里得)

题目扩展欧几里得的应用,先将公式变形同时将结果扩大res/bimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static BufferedReader br = ...

2019-12-05 19:34:03 169 1

原创 AcWing 877.扩展欧几里得算法(裴蜀定理 + 扩展欧几里得)

原理 + 推导用来解决这类问题值得注意的是 xy的值多次改变并且需要记录输出,C++中直接引用就好,Java通过数组即可。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main {...

2019-12-05 18:53:00 296

原创 AcWing 876.求逆元 (快速幂 + 费马小定理)

题目逆元的求法,用到欧拉定理和费马小定理,然后用快速幂优化。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static BufferedReader br =...

2019-12-04 06:11:12 166

原创 AcWing 875.快速幂 (快速幂模板)

快速幂模板模板题import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main { static BufferedReader br = new BufferedReader(new...

2019-12-03 05:40:33 334

原创 AcWing 874.线性筛法求欧拉函数 (数论 + 线性筛法 + 欧拉函数)

英语耍够了,没法很清晰的表达思路,还是换母语比较好…先看题目把,这个题需要求1-n的欧拉函数值,如果直接大循环来做是要超时的。题目链接这个题嵌套了之前的线性筛法选质数的模板,然后加上欧拉函数的公式,具体情况如下:(图片老上传失败,我真的很忧伤)这里的prime数组就是欧拉公式中的p1, p2, p3, …, pk顺带一提当i % prime[j] == 0时 prime[j]就是i的...

2019-12-02 20:47:08 237

原创 AcWing 873.Euler (Euler) Described by Java

Euler function to get the number of relatively prime to N between 1 - N.Problem in AcWingPic always uploaded unsuccessfully,so we can see the Euler.import java.io.BufferedReader;import java.io.IOE...

2019-12-02 00:03:12 91

原创 AcWing 872.GCD(GCD) Described by Java

The module of GCD.No recursion, or stack over.Problem in AcWingimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;class Main {...

2019-12-01 17:31:23 182

原创 AcWing 871.Sum of Divisors(Fundamental Theorem of Arithmetic + Multiplication)

Now how to get the sum of the divisors?Problem in AcWingsimpler than last problem.N = P1α1 + P2α2 + … + pNαNSo the sum = (P10 + P11 + … + P1α1) * (P20 + P21 + … + P2α2) * … * (PN0 + PN1 + … + PNα...

2019-12-01 16:59:55 96

原创 AcWing 870.Number of Divisors (Fundamental Theorem of Arithmetic)

We should know about the Fundamental Theorem of ArithmeticAnd we can get the number of the divisors by multipling (α1 + 1) * (α2 + 1) * … * (αN + 1).Basic of Principle of Multiplication.import java...

2019-12-01 06:04:45 83

原创 AcWing 869.Trial Division to get Divisor(Trial Division) Described by Java

Similar to getting the Prime NumberIf i (i < n) is a divisor of n ,then n / i ditto.Problem in AcWingimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;...

2019-12-01 03:25:37 100

原创 AcWing 860.Dyeing to judge Bipartite Graph(Dyeing) Described by Java

Cause of the changing of memory, this problem can be solved.It’s about Bipartite Graph.Problem in AcWingPrinciple is

2019-12-01 02:24:58 211

空空如也

空空如也

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

TA关注的人

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