- 博客(118)
- 资源 (1)
- 收藏
- 关注
原创 P3808 【模板】AC自动机(简单版)
#include<bits/stdc++.h>using namespace std;queue<int> q;const int N = 500010;struct AC_automaton{ int c[N][26], val[N], fail[N], cnt; //c数组记录字典树节点,val数组为该节点是否为字符串结尾(个数)(记录字符串...
2019-01-23 20:21:40
319
原创 P2051 [AHOI2009]中国象棋(动态规划&&分类讨论)
洛谷题解:https://www.luogu.org/problemnew/solution/P2051#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll MAXN = 105;const ll MOD = 9999973;ll dp[MAXN][MAXN][MAXN];...
2019-01-22 15:27:31
312
原创 树状数组 做题笔记1
HDU - 1166 敌兵布阵:#include <bits/stdc++.h>using namespace std;int a[50005];char cmd[1005];int main(){ int t, n, m, i, j, k, ca = 1; scanf("%d", &t); while(t--) { ...
2018-12-24 17:25:10
226
原创 树的直径 学习笔记2(思维)
CodeForces - 1085D - Minimum Diameter Tree:题目大意:给你一棵树,让你分配边权,使树的直径最小。解题思路:均分给叶子节点,其余边权为零,这样答案一定是最小的。#include <bits/stdc++.h>using namespace std;int du[100005] = {0};int main(){ in...
2018-12-24 16:28:07
272
原创 JAVA中的线程 学习笔记
概念:1、JAVA多线程机制:不同线程之间的快速切换2、程序:静态代码3、进程:一次程序的动态执行过程4、线程:比进程更小的执行单位5、线程对象:用Thread及其子类表示多线程:public class Main { public static void main(String[] args) { // TODO Auto-generated method ...
2018-12-24 16:25:24
337
原创 树形DP 学习笔记1(树的最长路径)
POJ - 2631 Roads in the North:题目大意:给你一棵树,求树的最长路径,也就是树的直径。树的直径必然是树上某一个点开始往下的最长链和次长链之和,因此,对于每个节点记录两个值 dp1[ i ] 表示以 i 为根的子树中,i 到叶子节点的距离最大值,dp2[ i ] 表示以 i 为根的子树中, 除距离最大值所在的子树,i 到叶子节点的距离最大值(次大值):d...
2018-12-24 16:17:02
987
原创 树的直径 学习笔记1(入门)
POJ - 2631 Roads in the North:题目大意:给你一棵树,求这棵树的直径。树的直径:树中最长的简单路径。简单路径:路径上各点均不重复。以下证明内容转自https://www.cnblogs.com/a-clown/p/6131346.html这里给出树的直径的证明: 主要是利用了反证法: 假设 s-t这条路径为树的直径,或者称为树上的最长路...
2018-12-24 16:00:58
331
原创 结构体中的运算符重载
struct node{ int data; bool operator < (const node b)const { return data < b.data; }};
2018-12-24 10:54:13
2125
1
原创 CodeForces - 1085D - Minimum Diameter Tree(思维)
题目大意:给你一棵树,让你分配边权,使树的直径最小。解题思路:均分给叶子节点,其余边权为零。#include <bits/stdc++.h>using namespace std;int du[100005] = {0};int main(){ int n, m, i, j, k; scanf("%d %d", &n, &m); ...
2018-12-24 10:41:13
354
原创 CodeForces - 1085C Connect Three(思维)
题目链接:https://cn.vjudge.net/problem/CodeForces-1085C题目大意:给了你三个点,让你建一条路把三个点都连起来,路径尽可能小。解题思路:构造题,找到中间位置的点,以他做垂线,两边的点水平连接。#include <bits/stdc++.h>using namespace std;set <pair<int, in...
2018-12-24 10:37:18
333
原创 数位DP 学习笔记2
题目HDU 4734 F(x):题目大意是给你两个数A,B,定义F(A)= 每个数位的数 * 2 ^ (位数 - 1)。求 0 - B 区间里的 F(x) <= F(A) 的数字的个数。一个数位DP的做法(TLE):#include <bits/stdc++.h>using namespace std;typedef long long ll;ll a[100...
2018-12-24 10:29:48
268
原创 数位DP 学习笔记1(数位DP入门)
HDU 2089 不要62:题目大意是给你一个区间,让你统计这个区间里不包含 4 和 62 的数字的个数。最朴素的思路是:对于每个区间 [l, r],遍历所有在区间 [l, r] 里的数字,然后检查每个数字是不是合法(没有 4 和 62 ),如果合法答案加一。代码如下:#include<bits/stdc++.h>using namespace std;boo...
2018-12-24 10:27:25
1039
1
原创 HDU - 2841 Visible Trees (容斥原理)
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll prim[100005], lenp = 0, isprim[100005] = {0};ll data[100005], lend;ll n, m, t, ans;void getprim(){ ll i, j, k; ...
2018-12-21 20:50:13
218
原创 HDU - 1796 How many integers can you find (容斥原理)
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll n, m, a[15], ans, p;ll lcm(ll a, ll b){return a * b / __gcd(a, b);}void dfs(ll x, ll sum, ll num){ if(num > m)ret...
2018-12-21 20:49:14
211
原创 HDU - 2204 Eddy's爱好 (容斥原理)
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll prim[20] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61};int main(){ ll n, i, j, k, ans; while(scanf("%lld"...
2018-12-21 20:48:11
332
原创 HDU - 4734 F(x) (数位DP)
#include <bits/stdc++.h>using namespace std;typedef long long ll;ll a[15];ll dp[15][200005];ll po[15], maxx;ll F(ll x){ ll pos = 0, ans = 0, num, pi = 1; while(x) { n...
2018-12-18 21:11:06
217
原创 HDU - 3555 Bomb(数位DP)
#include <bits/stdc++.h>using namespace std;typedef long long ll;ll a[1005], dp[1005][2][10] = {0};ll cnt(ll po, ll lim, ll la){ if(po == -1)return 1; if(dp[po][lim][la])return dp[...
2018-12-18 20:18:04
251
原创 HDU - 1698 Just a Hook (线段树区间修改+lazy标记)
#include <bits/stdc++.h>using namespace std;typedef long long ll;struct node{ ll l, r, sum;}a[400005];ll lazy[400005];ll num[100005];void build(ll loc, ll l, ll r){ if(l == r)...
2018-12-12 21:10:07
272
原创 HDU - 1754 I Hate It (线段树点修改)
#include <bits/stdc++.h>using namespace std;typedef long long ll;struct node{ ll l, r, sum;}a[1000005];ll num[200005];void build(ll loc, ll l, ll r){ if(l == r) { a[...
2018-12-12 21:08:26
260
1
原创 HDU - 1166 敌兵布阵(线段树点修改)
#include <cstring>#include <cstdlib>#include <cstdio>#include <algorithm>using namespace std;typedef long long ll;ll num[50005];char cmd[105];struct node{ ll l, r...
2018-12-12 21:06:45
248
原创 POJ - 3281 Dining (最大流)
#include <cstring>#include <cstdio>#include <cstdlib>#include <algorithm>#include <queue>using namespace std;typedef long long ll;int mp[505][505], vis[505], s, t...
2018-12-12 21:02:14
179
原创 HDU - 2089 不要62(数位DP)
模板题 #include <bits/stdc++.h>using namespace std;typedef long long ll;ll a[15];ll dp[15][2];ll dfs(ll pos, ll sta, ll lim){ if(pos == -1)return 1; if(lim == 0 && dp[pos][...
2018-12-12 20:59:55
251
原创 HYSBZ - 1143 祭祀river (二分图最大匹配)
#include <bits/stdc++.h>using namespace std;int a[105][105] = {0};int pre[205], s[205] = {0}, vis[105];int cat(int x, int n){ int i; for(i = 1; i <= n; i++) { if(vis...
2018-12-12 20:53:14
248
原创 CodeForces - 1082C Multi-Subject Competition(前缀和+思维)
题目链接:https://cn.vjudge.net/problem/CodeForces-1082C题目大意:给定n名选手,每名选手都有唯一选择的科目si和对应的能力水平。并且给定科目数量为m。求选定若干个科目,并且每个科目参与选手数量相同的情况下的最大能力水平。解题思路:首先将每个选手的能力值插入到对应的科目里面,用优先队列维护,求前缀和,不断加入的答案数组里(为负值时不加入)...
2018-12-12 20:36:43
423
原创 CodeForces - 1088C Ehab and a 2-operation task(思维)
题目链接:https://cn.vjudge.net/problem/CodeForces-1088C题目大意:给你一个长度为 n 的序列,你可以对这个序列做如下操作:1、从 1 - i ,每个元素加一个正数 x2、从 1 - i ,每个元素 mod 一个正数 x问你能否在 n + 1 步操作内使这个序列严格递增解题思路:答案与元素没有关系,第一步 1 - n mod ...
2018-12-12 20:25:06
489
原创 CodeForces - 1084C The Fair Nut and String(简单DP)
题目链接:https://cn.vjudge.net/problem/CodeForces-1084C题目大意:给你一个由小写字母组成的字符串 s ,让你找一种序列:1、对于任意一个 i ,使得 s[ p[ i ] ] == 'a'2、对于任意一个 i ,存在 p[ i ] < j < p[i + 1],且s[ p[ i ] ] == 'b'求这种序列有多少个,答案...
2018-12-12 20:12:52
1081
原创 Gym - 101982B Coprime Integers(容斥原理)
#include<bits/stdc++.h>using namespace std;typedef long long ll;ll ans, p = 0, maxx, a, b, c, d;ll prim[10000007],num[10000005];void dfs(ll x, ll sum, ll num){ if(num > maxx)retur...
2018-11-30 16:46:50
551
原创 Codeforces Round #523 (Div. 2)
A简单题#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll n, m, ans; cin >> n >> m; ans = m / n; if(m % n != 0)ans++; cout <...
2018-11-26 16:55:39
201
原创 HDU - 2176 取(m堆)石子游戏 (尼姆博弈)
题目链接:https://cn.vjudge.net/contest/269106#problem/Q题目大意: m堆石子,两人轮流取.只能在1堆中取.取完者胜.先取者负输出No.先取者胜输出Yes,然后输出怎样取子.例如5堆 5,7,8,9,10先取者胜,先取者第1次取时可以从有8个的那一堆取走7个剩下1个,也可以从有9个的中那一堆取走9个剩下0个,也可以从有10个的中那一...
2018-11-08 21:17:15
284
原创 HDU - 1527 取石子游戏 (威佐夫博弈)
题目链接:https://cn.vjudge.net/contest/269106#problem/R题目大意: 有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好...
2018-11-08 20:53:01
222
原创 HDU - 2516 取石子游戏 (斐波那契博弈)
题目链接:https://cn.vjudge.net/contest/269106#problem/F题目大意: 1堆石子有n个,两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍。取完者胜.先取者负输出"Second win".先取者胜输出"First win".解题思路: 斐波那契博弈,n为斐波那契数时...
2018-11-08 20:42:02
294
原创 SDUT- 3339 计算长方形的周长和面积(类和对象)
import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner cin = new Scanner(System.in); String s; int i, l, r; whil...
2018-10-17 11:31:40
840
原创 SDUT- 2749 区域内点的个数
import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner cin = new Scanner(System.in); int n, x1, y1, x2, y2, x, y, an...
2018-10-17 11:11:38
465
原创 SDUT- 2670 3-1 Point类的构造函数
import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner cin = new Scanner(System.in); int a, b; a = cin.nextInt();...
2018-10-17 11:07:58
313
原创 SDUT- 2669 2-2 Time类的定义
import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner cin = new Scanner(System.in); int a, b, c; a = cin.nextInt(...
2018-10-17 11:05:36
541
原创 SDUT- 2562 相似三角形
import java.util.Scanner;class Judge{ double a, b, c, a1, b1, c1; Judge(double a, double b,double c, double a1, double b1, double c1) { this.a = a; this.a1 = a1; this.b = b; this.b1 = b1...
2018-10-17 10:58:25
412
原创 SDUT- 2444 正方形
import java.util.Scanner;class Judge{ double x1, y1, x2, y2, x3, y3, x4, y4; Judge(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) { this.x1 = x1; thi...
2018-10-17 10:48:19
245
原创 SDUT - 2240 织女的红线
import java.util.Scanner;class Line{ double r, x, y, ans; int num; Line(int n, double ri, double xi, double yi) { num = n; r = ri; x = xi; y = yi; ans = 0; } void AddPoint(double xi...
2018-10-17 10:18:57
448
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人