- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 树状数组 做题笔记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 182
原创 树的直径 学习笔记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 237
原创 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 297
原创 树形DP 学习笔记1(树的最长路径)
POJ - 2631 Roads in the North:题目大意:给你一棵树,求树的最长路径,也就是树的直径。树的直径必然是树上某一个点开始往下的最长链和次长链之和,因此,对于每个节点记录两个值 dp1[ i ] 表示以 i 为根的子树中,i 到叶子节点的距离最大值,dp2[ i ] 表示以 i 为根的子树中, 除距离最大值所在的子树,i 到叶子节点的距离最大值(次大值):d...
2018-12-24 16:17:02 932
原创 树的直径 学习笔记1(入门)
POJ - 2631 Roads in the North:题目大意:给你一棵树,求这棵树的直径。树的直径:树中最长的简单路径。简单路径:路径上各点均不重复。以下证明内容转自https://www.cnblogs.com/a-clown/p/6131346.html这里给出树的直径的证明: 主要是利用了反证法: 假设 s-t这条路径为树的直径,或者称为树上的最长路...
2018-12-24 16:00:58 298
原创 结构体中的运算符重载
struct node{ int data; bool operator < (const node b)const { return data < b.data; }};
2018-12-24 10:54:13 2085 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 306
原创 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 285
原创 数位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 225
原创 数位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 928 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 179
原创 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 181
原创 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 294
原创 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 185
原创 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 190
原创 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 232
原创 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 220 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 214
原创 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 148
原创 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 219
原创 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 210
原创 CodeForces - 1082C Multi-Subject Competition(前缀和+思维)
题目链接:https://cn.vjudge.net/problem/CodeForces-1082C题目大意:给定n名选手,每名选手都有唯一选择的科目si和对应的能力水平。并且给定科目数量为m。求选定若干个科目,并且每个科目参与选手数量相同的情况下的最大能力水平。解题思路:首先将每个选手的能力值插入到对应的科目里面,用优先队列维护,求前缀和,不断加入的答案数组里(为负值时不加入)...
2018-12-12 20:36:43 360
原创 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 431
原创 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 986
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人