
算法
hlh_upupup
小白初长成
展开
-
完全背包问题
今天联系到了完全背包问题,看了很久的板子,才动的题,最后wr到崩溃。先分享一下板子 for(int i=0;i<m;i++) for(int j=0;j<=mon;j++) { for(int k=0;k*p[i]<=j;k++) { dp[i+1][j]=max(dp[i+1][j],dp[i][j-k*p[i]]+k*h[i]...原创 2019-08-02 20:21:30 · 217 阅读 · 0 评论 -
拓展欧几里得求逆元
数论,emmm,敲这个只是为了加深印象。#include<iostream>using namespace std;int exgcd(int a,int b,int &x,int &y){ if(b==0) { x=1;y=0; return a; } int r=exgcd(b,a%b,x,y); int temp=y; y=x-a...原创 2019-08-17 00:32:03 · 166 阅读 · 0 评论 -
欧拉函数
欧拉函数属于数论里面比较基础的,但是写着写着就忘了,用来计算一个数n(小于n)的质因数的个数#include <iostream>using namespace std;int phi(int n){ int ans=n; int k=n; for(int i=2;i*i<=n;i++) { if(n%i==0) { n/=i; ans=a...原创 2019-08-16 16:32:06 · 107 阅读 · 0 评论 -
带权并查集
带权并查集,主要是来处理集合元素与元素之间的关系,或者说元素与元素连线之间的权值,板子是这样的int find(int x) { if (x == root[x]) return x; else { int t = find(root[x]); sum[x] += sum[root[x]]; root[x...原创 2019-08-15 00:51:54 · 129 阅读 · 0 评论 -
Digits Parade
题意:一个字符串S,每个字符是数字(0到9)或'?'(半角)。我们用数字(0 ~ 9)替换'?', 可以得到整数A,那么请问有多少种情况可以满足A除以13余5A可能有前导0Sample Input 3Copy7?4Sample Output 3Copy0We may not be able to produce an integer satisfying ...原创 2019-08-19 15:59:57 · 216 阅读 · 0 评论 -
I Hate It
今天为大家带来的仍然是线段树的题,emmmm,这个本来是想用树状数组来搞得,但是下午本来要去上海!!!!!!!!!没有学习,但是这两天那边有台风(听说17级,火车禁止通行),我又回来了,,退票费真贵。。。。。看题 ,这个题仍然是不用二进制就会TLE的线段树。改了无数个bug,一边过的题,昨天写的那个是,区间求和以及区间单点修改值,今天是区间求最大最小值。5 61 2 3 4 5Q...原创 2019-08-09 21:00:59 · 210 阅读 · 0 评论 -
并查集应用
数据结构学了很长时间了,从二叉树到线段树,再到并查集和最小生成树。越来越考验思维能力,今天说一下并查集,并查集的思想是,对不交集的数据进行合并查询。主要通过find和join函数实现。int find(int x){ if(x!=root[x]) root[x]=find(root[x]); return root[x];}void join(int x,int...原创 2019-08-13 21:00:27 · 129 阅读 · 0 评论 -
Rails
Sample Input51 2 3 4 55 4 1 2 3066 5 4 3 2 100Sample OutputYesNoYes题意,告诉你一个队列,以栈的方式进行操作,看那个输出顺序是错误的。这种题用c++,里面的stack解决起来被叫方便,但是有个坑点是,每次查询完,得清空stack,不然容易wr。#include <i...原创 2019-08-06 19:44:39 · 120 阅读 · 0 评论 -
敌兵布阵(线段树or树状数组)
这个题线段树的板子,敲了两个小时,还TLE,唉,狗生太难了,纪念一下昨天的情人节。第一行一个整数T,表示有T组数据。每组数据第一行一个正整数N(N<=50000),表示敌人有N个工兵营地,接下来有N个正整数,第i个正整数ai代表第i个工兵营地里开始时有ai个人(1<=ai<=50)。接下来每行有一条命令,命令有4种形式:(1) Add i j,i和j为正整数,表示...原创 2019-08-08 21:02:21 · 137 阅读 · 0 评论 -
kmp
kmp主要用于处理字符串匹配的问题,单串对单串,这东西,讲起来太麻烦了,当模板用吧#include <iostream>#include <string.h>using namespace std;int a[1000009],b[10009],n,m,next1[10009];void f(string s2){ int k=-1,j=0; next1[...原创 2019-08-27 15:20:07 · 154 阅读 · 0 评论