【POI 2010】 Pilots】的更多相关文章

[题目链接] 点击打开链接 [算法] 单调队列 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 3000010 int n,k,i,ans,pos; deque< int > q1,q2; int a[MAXN]; int main() { scanf("%d%d",&k,&n); ; i <= n; i++) scanf("%d",&…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2084 [算法] manacher [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 500010 int n; char s[MAXN]; inline void Manacher() { ,pos = ; ; ]; ]; len = strlen(s+); ; i <= len; i++) { t…
题目: 对于一个 $0/1$ 字符串,如果将这个字符串 $0$ 和 $1$ 取反后,再将整个串反过来和原串一样,就称作「反对称」字符串.比如 $00001111$ 和 $010101$ 就是反对称的,而 $1001$ 就不是.现在给出一个长度为 $n$ 的 $0/1$ 字符串,求它有多少个子串是反对称的,注意这里相同的子串出现在不同的位置会被重复计算. $n\le 5\times 10^5$ 分析: ①显然,反对称字符串的长度一定是偶数. 因为若不是偶数,中间的那个数取反永远不会等于自己. ②若…
[题目链接] 点击打开链接 [算法] 二维线段树(树套树) 注意标记永久化 [代码] #include<bits/stdc++.h> using namespace std; #define MAXD 1000 int D,S,N,d,s,w,x,y,tmp; struct SegmentTree { struct Node { int l,r,Max,tag; } Tree[MAXD*+]; inline void build(int index,int l,int r) { int mid…
[题目链接] 点击打开链接 [算法] 首先,有一个结论 : 一定有一棵严格次小生成树是在最小生成树的基础上去掉一条边,再加上一条边 这个结论的正确性是显然的 我们先用kruskal算法求出最小生成树,然后,枚举不在最小生成树上的边,我们发现若加上这条边, 则形成了一个环,用最小生成树的权值和加上这条边的权值再减去在这个环上且在最小生成树上权值 最大的边即为包括这条边的最小生成树的权值和 那么,树上倍增可以解决这个问题 因为是要求严格最小,所以我们不仅要记录最大值,还要记录次大值 时间复杂度 :…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1975 [算法] A*求k短路 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 5010 #define MAXM 200010 const double INF = 1e15; int i,tot,n,m,u,v; int head[MAXN],rhead[MAXN]; double dist[MAXN…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1102 [算法] 广度优先搜索 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 1010 const int INF = 2e9; ] = {,,-,,-,-,,}; ] = {-,,,,-,,-,}; int i,j,n,mn,mx,ans1,ans2; int a[MAXN][MAXN]; bool…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1951 [算法] 欧拉定理+中国剩余定理 + lucas定理 [代码] #include<bits/stdc++.h> using namespace std; #define MAXD 40000 typedef long long ll; ; ] = {,,,}; ll i,j,n,q,cnt,ans,x; ll a[],factor[]; ll fac[MAXD+][]; i…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2242 [算法] 第一问用快速幂解决 第二问用exgcd解决 第三问用BSGS算法解决 [代码] #include<bits/stdc++.h> using namespace std; typedef long long ll; ll T,K,y,z,p,q,x,g,ans; inline ll power(ll a,ll n,ll p) { ll b = a,ret = ; )…
项目结构如下: 那第一部分:先是读取Word文档 package com.it.WordTest; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.Da…