- 博客(26)
- 收藏
- 关注
原创 [USACO1.2]命名那个数字 Name That Number (DFS&暴力)
[USACO1.2]命名那个数字 Name That Number (DFS&暴力)题意:给一编号按特定规则转化的字符串,问是否能在给定字典中查找到并按字典序输出。题目传送门思路1:DFS 编号对应的每个字符串,用vis[]标记字典中的进行比较。时间复杂度不确定:最大可大O(2^12)会炸。必须开O2||O3优化才能过思路2:对字典的字符串转化为数字与编号比较。由于字典中的字符串只...
2020-03-31 21:21:56 492
原创 [USACO06FEB]Backward Digit Sums G/S (DFS&杨辉三角)
[USACO06FEB]Backward Digit Sums G/S (DFS&杨辉三角)题目传送门思路:利用DFS或者next_permutation 再稍加剪枝即可。具体细节见代码。DFS代码#include<bits/stdc++.h>using namespace std;int n,sum,c[12],ans[13],vis[13];// c[]计算 C...
2020-03-31 15:35:34 460
原创 输出二进制表示 (蓝桥杯算法提高)
输出二进制表示 (蓝桥杯算法提高)题意:对n∈[-128,127]输出其二进制形式思路1:分正负数数讨论模拟二进制(复杂代码)思路2:按位与判断(简洁代码)思路1代码#include<bits/stdc++.h>using namespace std;int main(){ int n,f,ans,i; while(cin>>n){ i=f=ans=0...
2020-03-31 12:12:28 556
原创 Newcoder 贝伦卡斯泰露(DFS)
Newcoder 贝伦卡斯泰露(DFS)题意:给n个元素组成的数组(n为偶数),问能否分成两个长度n/2的相同子序列.思路:DFS,确立好参数,分两种情况:当前元素匹配(序列C中要与序列B匹配的数)则将该元素加入到C,继续DFS,若不匹配或相等仍选择不匹配,则将该元素加入到B中,继续DFS#include<iostream>using namespace std;int a[...
2020-03-30 21:09:33 429 4
原创 HDU 5695 Gym Class (拓扑排序&贪心)
HDU 5695 Gym Class (拓扑排序&贪心)题意:若干人排队,每人一个权值,给若干优先级顺序,求怎么排队(在特定权值计算下)权值和最大。思路:贪心思想:在满足优先级的情况下权值越大排在越前面时间复杂度:O(N+M)#include<bits/stdc++.h>using namespace std;priority_queue<int>q;...
2020-03-30 19:53:24 424
原创 HDU 1285-确定比赛名次 ( 拓扑排序)
HDU 1285-确定比赛名次 ( 拓扑排序)题意:给若干比赛结果,按字典序输出比赛排名思路:拓扑排序,利用DFS建图。#include<bits/stdc++.h>using namespace std;const int N=5e2+5;int in[N],n,m,u,v,now;int g[N][N];#define mst(a) memset(a,0,sizeo...
2020-03-30 19:21:12 327
原创 HDU 3193-Find the hotel (RMQ)
HDU 3193-Find the hotel题目传送门题意:找到所有满足(不存在比该酒店价格和距离都低的其他酒店)这样的酒店,即价格大于等于它的酒店不用考虑,只用考虑价格比他小的酒店当中是否距离最小的那个比它的距离大。若存在一个即该酒店满足。最后排序。#include<bits/stdc++.h>using namespace std;const int N=1e4+5;...
2020-03-30 11:54:33 351
原创 POJ-3264 Balanced Lineup (RMQ)
POJ-3264 Balanced Lineup (RMQ)题目传送门#include<iostream>#include<cstdio>using namespace std;const int N=5e4+5;int dp[N][20][2],n,q;void solve(){ //RMQ预处理 nlogn for(int j=1;(1<<...
2020-03-30 09:30:23 322
原创 AtCoder Beginner Contest 160-F - Distributing Integers(DFS&DP)
AtCoder Beginner Contest 160-F - Distributing Integers(DFS&DP)#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll N=2e5+5,mod=1e9+7;vector<ll>g[N];ll a[N],...
2020-03-29 10:52:38 495
原创 AtCoder Beginner Contest 160--E - Red and Green Apples(贪心)
ABC160-E - Red and Green Apples#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll X,Y,A,B,C; cin>>X>>Y>>A>>B>>C; vector<ll>...
2020-03-28 22:18:04 417
原创 Nowcoder practice 60 C.操作集锦
Nowcoder practice 60 C.操作集锦#include<bits/stdc++.h>using namespace std;#define ll long longconst int mod=1e9+7;int dp[1010][1010][27];//dp[i][j][k]前i个字符中长度为j以'a'+k结尾的不同本质的子序列个数int main(){...
2020-03-28 13:10:13 286
原创 dsu on tee相关题目练习(DFS)
dsu on tee相关题目练习(DFS)1.U41492 树上数颜色dsu on tree 裸题,具体看代码#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+5;vector<int>v[N];int col[N],hev[N],sz[N],c...
2020-03-28 12:43:54 353
原创 Nowcoder practice 60 D.斩杀线计算大师(扩展欧几里得)
标题Nowcoder practice 60 D.斩杀线计算大师(扩展欧几里得)思路:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+5;#define mst(a) memset(a,0,sizeof a)void egcd(ll a,ll b,ll &a...
2020-03-28 10:23:33 307
原创 Codeforces Round #629 (Div. 3)F. Make k Equal
标题Codeforces Round #629 (Div. 3)F. Make k Equal (前后缀和+讨论)下面是AC代码#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll N=2e5+5,inf=1e15;ll a[N],n,k,pre[N],suf[N],ans=inf...
2020-03-27 16:37:56 281
原创 Codeforces Round #629 (Div. 3) E.Tree Queries (DFS)
Codeforces Round #629 (Div. 3) E.Tree Queries (DFS)思路:若ai 在路径上 ,则ai的父结点一定在路径上,若ai是路径上某个结点的子结点,则ai的父结点一定在路径上,综上只需考虑ai的父节点就行了。对每个ai判断一下ai-1是否能到达ai,若存一个不行则输出NO,反之输出YES.用f[i]存储父结点,用dfs[i]记录访问顺序,用sz[i]保...
2020-03-27 13:02:45 1375
原创 Codeforces Round #629 (Div. 3) D. Carousel
Codeforces Round #629 (Div. 3) D. Carousel (贪心)下面是AC代码#include<bits/stdc++.h>using namespace std;const int N=2e5+5;int a[N],t,n,fi,be; //a[i]储存答案 fi(first)表示第一个数 ,be(before)表示当前数的前一个数...
2020-03-27 11:36:56 265
原创 莫比乌斯函数
莫比乌斯函数μ(n) ——默比乌斯函数,是关于非平方数的质因子数目,若n=1,μ(n) =1,若n存在有大于1的平方数因数(如4(2平方),9(3的平方),16(4的平方)……),则μ(n) =0,否则μ(n) 的结果取决于n根据基本算术定理分解的质因数个数的奇偶性来判断。比如n=3,5,7就只有一个质因数所以为μ(n)=-1,n=6,15,21,μ(n)就为1。...
2020-03-26 21:46:20 1765
原创 SG函数和SG定理的运用
SG函数和SG定理的运用SG函数和SG定理常用于解决博弈论的相关问题。其中SG函数的求解主要根据MEX运算。什么是MEX运算?MEX( minimal excludant ) 字面上意思是最小除外的那个数。 MEX是对一个集合的运算。指得是对于一个集合 s={a1,a2,an) 集合中未出现的最小非负整数。举个例子:比如 s={1,2,3} 则MEX(s)=0, 如果s={0,1,2,4...
2020-03-25 10:14:19 566
原创 二分题目及其总结.
二分题目及其总结.1.银行贷款题目传送门:P1163思路:找到函数单调性,进行二分查找。下面是分析。#include<bits/stdc++.h>using namespace std; double n,m;int k;bool find(double x){ return (pow(1.0/(1.0+x),k)>=1-(n/m)*x);//如果大于 ...
2020-03-24 21:54:06 423
原创 最长递增子序列的三种解法(LIS)
最长递增子序列的三种解法(LIS)1.用LCS(求LIS) 时间复杂度O(n^2)思路:将原序列a排序后产生一个新的序列b,比较a和b最长公共子序 结果就是LIS.#include<bits/stdc++.h>using namespace std;const int N=1e4+5;int dp[2][N];//滚动数组优化 string a,b;int LCS(...
2020-03-24 16:28:47 504
原创 模拟退火相关题目
模拟退火相关题目1.计算函数最值(非单峰函数)1.Strange fuction题目传送门HDU2899思路:本题的状态函数就是题目中的数学函数,因为是求最小值,所以每次取最小即可,其他细节见代码。#include<bits/stdc++.h> using namespace std;const double eps=1e-8;//终止温度 double y;...
2020-03-24 14:55:00 843
原创 组合数学相关练习
组合数学相关练习1.Count The Blocks题目传送门:ECR 84 E题意:给定n,求从0到 10^n-1 的所有长度为 i(i从1到n)的个数。每个数均为n位数(不足补前导0)下面上代码#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e5+5,m...
2020-03-24 11:28:05 324
原创 几个常见的DP类型.
几个常见的DP类型.1.路径DP.例题1.P1216 [USACO1.5][IOI1994]数字三角形 Number题目传送门#include<bits/stdc++.h>using namespace std;const int N=1e3+5; int n,dp[N][N],a[N][N];//状态的确立:dp[i][j]表示终点为第i行第j列的最大值 int ma...
2020-03-23 19:50:18 4434
原创 树与图论的相关题目
树与图论的相关题目1.树上求和. 因为是一棵树,从任意一点为根节点搜索都可以搜索完所有边。这里以1为根节点搜索。递归保存每个边的贡献次数。按贡献的次数从小到大排序,然后权值从n-1到1相乘求和即可。 一个重要的知识点:U—V的边的贡献次数 = size(以V为边的子树结点数目)*(N-size)#include<bits/stdc++.h>using namespac...
2020-03-22 13:26:20 475
原创 KMP系列题目
KMP系列题目。CF1325D. Prefix-Suffix Palindrome (Hard version)题意:给定字符串,求右字串前缀和后缀组成的最大回文字符串,且长度不大于字符串本身.思路1:对于easy version :可以选择暴力。双向指针找到最大相同前后缀strL,strR。在对中间的一段字符串进行暴力枚举找到最长的回文串mid。最后的答案为 strL+mid+str...
2020-03-20 14:03:44 644
原创 二叉树系列题目
二叉树系列题目1.利用二叉树性质解题.UVA 679 - Dropping Balls有一棵二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从上到下从左到右 编号为1, 2, 3,…, 2D-1。在结点1处放一个小球,它会往下落。每个内结点上都有一个开关, 初始全部关闭,当每次有小球落到一个开关上时,状态都会改变。当小球到达一个内结点 时,如果该结点上的开关关闭,则往左走,否则往右走...
2020-03-19 15:20:41 1154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人