- 博客(19)
- 资源 (4)
- 收藏
- 关注
原创 dp入门之完全背包
完全背包问题前言一、问题导入二、问题分析1.朴素做法2.柿子简化+一维优化前言动态规划一直是算法内容里比较优美的解决方法,他是一种思想。一、问题导入二、问题分析前面我们了解了,01背包的问题,当时的思想是,对于第i个物品的考虑情况,分为二个集合,选第i个物品和不选第i个物品,二种情况。且每种物品只能用一次。__完全背包__问题中物品为无限个,也就是对于第i个物品可以选n个(0<=n)。1.朴素做法#include<iostream>using namespace st
2021-09-15 21:09:29 206 8
原创 dp入门之01背包
01背包问题一、例题二、算法思路三、题解代码一、例题二、算法思路对于循环j从大到小循环的解释:初始方程:f[i][j]=max(f[i-1][j],f[i-1][j-v[i]]+w[i]),当前f[i][j]状态的改变依赖于上一层原有状态,而我们目前想用一位数组来优化,呢么还是要保持原有变换规则。即f[j]状态,(这里要清楚,为啥是f[j],而不是f[i],因为在f[i][j]中i仅决定哪一层的f[j]值。)若j从v[i]-m,则方程f[j]=max(f[j],f[j-v[i]]+w[i])
2021-09-13 21:46:34 225 6
原创 KMP算法
KMP算法详解前言一、问题导出① 字符串匹配例题② BF解决方案③ 代码实现二、引入KMP算法思想① kmp算法提高效率解释② kmp算法详解③ 代码实现前言kmp算法又称模式匹配算法,能够在线性时间内判定字符串A[1-N]是否是字符串B[1-M]的子串。(<=N<M<=1E6)一、问题导出① 字符串匹配例题② BF解决方案给定主串数组A[1-M],子串数组[1-N],分别以i,j为其字符串比较过程中的当前下标。(1<=i<=M,)③ 代码实现二、引入KMP算
2021-09-12 20:42:05 377 7
原创 走迷宫(dfs+bfs)
走迷宫(搜素+回溯)一 题目描述二 题解思路三 题解代码四 每日共勉一 题目描述你是一个善良的男孩 Butter, 有一天你被邪恶的巫师 Cartman 抓到了黑暗迷宫 , 黑暗迷宫的魔法可以让所有进入的人失明。迷宫中黑色的格子是诅咒陷阱 , 进入就会死亡 (迷宫的外围是火海), 白色的格子是安全的格子.在你一无所措的时候,有一个善良机器人 AWRSOM-O 向你发信息。它可以告诉你所在的格子的上下左右的四个格子是哪种格子,而且还可以告诉你某个格子是不是以前走过了.问你能走出迷宫吗?如果能就输出:Y
2021-04-15 21:03:29 348 4
原创 数论之因子和与因子个数
因子和与因子个数一 因子和定义实战题目(模板题)因子和模板二 因子个数定义实战题目因子个数代码三 每日共勉一 因子和定义实战题目(模板题)题目链接: link.题解博客链接: link.因子和模板#include<iostream>using namespace std;int main(){ int i,j,t,n,sum; cin>>t; while(t--) { sum=1; cin>>n; if(n==1) cout&
2021-04-13 17:38:19 2063 5
原创 杭电1215 七夕节
七夕节(质因数和)一 题目描述二 解题代码三 每日共勉一 题目描述题目链接: link.二 解题代码#include<iostream>using namespace std;int main(){ int i,j,t,n,sum; cin>>t; while(t--) { sum=1; cin>>n; if(n==1) cout<<0<<endl; else{ for(i=2;i*i<=n
2021-04-11 21:49:58 175 1
原创 矩阵快速幂
矩阵快速幂一 矩阵乘法介绍二 矩阵乘法代码实现三 矩阵快速幂介绍快速幂代码四 矩阵快速代码五 每日共勉一 矩阵乘法介绍二 矩阵乘法代码实现const int N=100;int c[N][N];void multi(int a[][N],int b[][N],int n)//n是矩阵大小,n<N{ //memset(c,0,sizeof c); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++)
2021-04-10 20:45:11 294
原创 消失的数字
消失的数字(位运算、异或)一 题目描述二 解题思路三 解题代码四 每日共勉一 题目描述题目链接: link.二 解题思路将十进制数转换成二进制思考,利用二进制异或的性质。自己异或自己=00异或其它数=其它数三 解题代码class Solution {public: int missingNumber(vector<int>& nums) { int res=0; int n=nums.size(); for(int
2021-04-08 21:44:56 330 1
原创 华为杯题E 你的Alice(博弈论)
你的Alice一 题目描述二 解题思路三 解题代码四 每日共勉一 题目描述题目链接: link.二 解题思路emmmm,我就是来水题目的,水今天的任务,好传统不能丢,一天一博客。三 解题代码#include <iostream>using namespace std;int main(){ long long n; cin>>n; int k; cin>>k; int f=(n/k)&1?1:0;
2021-04-07 22:38:50 273
原创 华为杯题A细胞分解
细胞分解(数论题)一 题目描述二 解题思路一 手写分析二 简要概括三 题解代码四 每日共勉一 题目描述题目链接: link.二 解题思路整体分析:用到了欧拉筛+整数分解。一 手写分析二 简要概括①欧拉筛,筛出3000以内的素数,放在sum_prime数组中。②大整数分解③判断是否可以覆盖④依次比较每个细胞所用时间t,选取最小值。三 题解代码// A code blockvar foo = 'bar';#include<bits/stdc++.h> usi
2021-04-07 11:56:55 1412 6
原创 力扣春季赛
力扣春季赛采购方案前言一 采购方案二 解题思路前言今天的力扣春季赛楼教主霸榜,50多分钟AK全场。orz以后面试的时候可以吹了,和楼教主同台竞技,只有几题之差。哈哈哈一 采购方案![**题目链接: link.题目难度:简单二 解题思路由于只是求二个数之和是否超过target,故可以排个序用双指针写法。赛后看了一下,本题最快的估计是汪佬的1分.44秒AC。汪佬代码附上:这里关键就是sort + j-i语句;...
2021-04-05 22:06:00 2823 8
原创 数论之模意义下的除法和乘法逆元
分数的取模前言一前言先介绍模的运算规则①取模运算:a%p,表示a除以p的余数。②模加法运算:(a+b)%p=(a%p+b%p)%p③模减法运算:(a-b)%p=(a%p-b%p)%p④模乘法运算:(ab)%p=(a%p)(b%p)%p你会发现没有提及到模的除法运算,呢么(a/b)%p=(a%p)/(b%p)嘛?一...
2021-04-03 13:43:13 5481 12
原创 埃氏筛+欧拉筛
欧拉筛求素数前言一 欧拉筛模板前言对于求解1-n区间内的所有素数,如果一个个判断的话可能会超时,这里介绍一下欧拉筛,用于求解一段区域里边的素数。一 欧拉筛模板1.prime[N]记录素数 2.vis[N]标记是不是素数。#include<cstdio>using namespace std;const int maxn = 1e7 + 5;int prime[maxn];bool vis[maxn];void oula(int n){ int cnt = 0;
2021-04-01 21:30:17 1730 7
原创 数论之欧拉筛、乘法逆元、快速幂实战
西南科技大学题E孪生素数(考察点:欧拉筛、乘法逆元、快速幂或者扩展欧拉)前言一 题目描述二 解题思路三 题解代码四 总结五 每日共勉前言上午刚看的繁佬的乘法逆元,下午的题正好考到了,还是卡了没写出来。总结模板+模板题,欧拉筛模板,乘法逆元模板,快速幂模板。做个cv工程师就可以ac了,可惜我不配,一直wawawa。赛前不努力,赛时哇哇哇。一 题目描述题目链接: link.二 解题思路1.欧拉筛(求出来孪生素数个数m)2.乘法逆元(最后用于求解分数m/n mod 1e9+7的值,因为是分数不
2021-03-31 22:27:18 3727 5
原创 欧拉计划题-19 (蔡勒公式)
欧拉计划题19前言一 题目描述二 题解分析1.暴力求解(低配版解法)2.蔡勒公式(公式法)三 题解代码四 每日共勉前言欧拉计划是学习数学、数论选手遨游的海洋,700+道题让你我越来越强。打卡网址链接: link.一 题目描述题目链接:link.二 题解分析1.暴力求解(低配版解法)可以这样思考,首先外层套一个1901年到2000年的循环,依次判断是否是闰年。齐次开辟一个大小为12的数组存放非闰年的每个月天数,同时falg变量标记是否为闰年,作为二月份的加1操作。s初始化为1,因为190
2021-03-30 22:31:31 508 3
原创 欧拉计划题5(1-n的最小公倍数)
欧拉计划前言一 题目描述二 解题思路三 总结扩展四 每日共勉前言欧拉计划是学习数学、数论选手遨游的海洋,700+道题让你我越来越强。打卡网址链接: link.一 题目描述链接: link.至于输入描述、范围读者自己意会,懂得都懂。二 解题思路对于学过大整数分解的同学,肯定会第一时间想到下面的分解公式求的是1-n的最小公倍数,自然想到每个素因子的个数得选择1-n中出现最多的次数,即对于素因子取最多的次数,即对1-n里的每个数ni,分解后pi取最大值ki放在筛素数的数组中保存。例如
2021-03-29 22:23:37 2244 5
原创 中国剩余定理
中国剩余定理前言1.韩信点兵2.猜数字(洛谷P3868)一 中国剩余定理(又称孙子定理)1.定义2.构造法证明存在性二 中国剩余定理模板前言的猜数字就是裸的中国剩余定理,数论初学者建议看完博客直接刷此题。前言1.韩信点兵题目连接 链接: link.2.猜数字(洛谷P3868)题目连接 link.链接: link.上述韩信点兵和猜数字都是运用了中国剩余定理。(若干年的我苦学若干年前人的方法,疯狂orz)。一 中国剩余定理(又称孙子定理)1.定义参考大佬的博客(侵删),链接: link.
2021-03-28 23:00:07 2630 5
原创 小白月赛31题E解方程(数论之唯一分解定理)
解方程一 题目描述涉及知识点总结二 题意分析三 唯一分解定理四 题解代码一 题目描述题目链接: https://ac.nowcoder.com/acm/contest/10746/E.给出两个正整数 a,b,计算满足方程 ax+by=x*y 的正整数(x, y) 的组数。输入描述输入的第一行有一个正整数 t 测试数据的组数。每组测试数据在一行中给出两个正整数 a, b。1 ≤ t ≤ 10 ^ 31 ≤ a, b ≤ 10 ^ 6输出描述输出一个数字表示答案保证答案小于2 ^ 31输
2021-03-25 16:59:06 346 2
原创 数论入门之青蛙的约会poj1061
青蛙的约会POJ10610前言一、什么是扩展欧几里得?题意:两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙..
2021-03-24 21:58:33 395 4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人