- 博客(105)
- 收藏
- 关注

原创 方程的解数
蒜头君在求解一个n元的高次方程:其中:x1,x2,…,xn 是未知数,k1,k2,…,kn是系数,p1,p2,…,pn是指数。方程中所有数都一定是整数。假设未知数 1≤xi≤M,i=1…n。你能帮蒜头君算出这个方程的整数解个数吗?输入格式第一行输入一个整数 n(1≤n≤4)。第二行输入一个整数 M(1≤M≤150)。第3行到第 n+2 行,每行输入两个整数,分别表示 ki(∣ki∣≤2...
2019-02-17 19:09:00
150

原创 正方形
体会Ank 和Cnk的不同选法(当前的数为index,每次从index后面的数里选取,为Cnk)(352,235,523只会选出来其中一种)#include<iostream>#include<string.h>#include<vector>#include<algorithm>using namespace std;int n,ans...
2019-02-17 18:21:36
851

原创 蒜头君下棋 DFS
题目链接我们从某一点出发,把这一点当做-1,之后开始dfs,他能到达的点(马子走)都设为1,再从能到达的点再遍历,设为-1。这样能把这些点分为1和-1.这是相互冲突的。这样之后我们还会可能有一些点没有被遍历到,我们再找那些等于0,也就是没有被遍历到的,再重复过程。最后我们统计1的个数还有-1的个数,取最大值即可。#include&lt;iostream&gt;#include&lt;al...
2019-02-16 17:38:30
237

原创 合并数字
题目链接用栈来维护每次合并完的数,每入栈一个数以后栈顶和次栈顶比较,如果可以合并就合并为新的栈顶,并且再次与次栈顶比较直至无法合并(不排除当前栈顶元素可以与次栈顶甚至次栈顶后面的元素进行“合并”操作的可能),然后在合并过程中统计次数即可。#include <iostream>#include <stack>using namespace std;int n,x;...
2019-02-16 16:44:37
264

原创 引爆炸弹
题目链接思路:dfs搜索,由于数据量较大,需要剪枝定义row和col两个数组,如果炸弹爆炸,则炸弹所在的row和col记为1虽然求最少的炸弹引爆数,但是因为炸弹是连锁的,所以遍历即可#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#inc...
2019-02-10 11:39:22
758

原创 楼兰图腾 树状数组求逆序和
题目链接注意:每次求逆序或正序和都需要初始化#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#include <iostream>#include <cmath>#include <vector>#i
2019-02-09 20:52:57
168

原创 激光炸弹 二维前缀和
题目链接思路:二维前缀和+内存优化(题目10^8需要优化),所以用n,m记录大的那个前缀和前缀和的计算: f[i][j]=f[i−1][j]+f[i][j−1]−f[i−1][j−1]+a[i][j]边长为r的正方形前缀和计算:a[i][j]-a[i-r][j]-a[i][j-r]+a[i-r][j-r]技巧:因为前缀和从1开始比较方便,所以处理数据时x++,y++#include &...
2019-02-07 20:29:22
143

原创 最佳牛围栏 二分+前缀和
题目链接平均值技巧,同时减去avg思路:将最优问题转化为判定问题#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#include <iostream>#include <cmath>#include <ve...
2019-02-06 13:15:02
475

原创 Allowance POJ - 3040 贪心+模拟
题目链接1 面值比c大的直接当一次2 面值比C小的贪心求解, 先从大面值到小面值遍历,使得总和小于等于C,然后从小到到大遍历,使得总和大于等于C参考博客#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#include <iostre...
2019-02-03 20:04:59
209
原创 没有上司的舞会(树形dp)
Ural大学有N名职员,编号为1~N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。输入格式第一行一个整数N。接下来N行,第 i 行表示 i...
2019-06-01 15:38:06
207
原创 数列分段 II
problem:一个长度为N的正整数数列A[i]将其分成M段,并要求每段连续求每段和最大值(M段各自的和中最大的那个)最小(某种方案下最小)。solution:二分+贪心#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int a[N];int n,m;bool check(int x...
2019-05-29 16:46:58
354
原创 I Hate It
线段树模板https://vjudge.net/problem/HDU-1754#include<bits/stdc++.h>using namespace std;const int N=2e5+10,INF=0x3f3f3f3f;int n,m,a[N];struct Tree{ int l,r,dat;}t[N<<2];void pushup(i...
2019-05-10 17:18:34
300
原创 Jessica's Reading Problem
链接经典的贪心题目注意1.页数在int范围内,数组会越界,所以用map来记录是否读过该书籍2.每次操作最后更新l和r#include<iostream>#include<cstdio>#include<set>#include<algorithm>#include<map>using namespace std;co...
2019-04-24 11:31:14
612
原创 借教室
链接二分加差分注意:求的是第一个不满足的订单,在l或r的基础上++//具有单调性,二分//区间操作最后求值,差分#include<bits/stdc++.h>using namespace std;const int N=1e6+10; ll n,m,a[N],d[N],s[N],t[N],diff[N],sum[N];bool check(int mid){ ...
2019-04-24 10:52:34
137
原创 疏散人群(dfs遍历树)
对于每一个子树,花费的最小时间一定是节点个数,把问题成功的转化为求每个子树的节点个数,取最大值即可(树是无向的,所以要用vis判断不是遍历过的父节点)#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int n,a[N],ans[N];vector<int> G[N];bool vi...
2019-04-21 17:51:03
455
原创 奖品分配
题目链接每个位置的最小值是由左右位置转移过来的,所以排序后,当前位置i左右两边的位置如果已经计算过,就可以转移过来#include<bits/stdc++.h>using namespace std;typedef pair<int,int> P;typedef long long ll;const int N=1e5+10;int a[N],b[N];P ...
2019-04-20 21:35:34
702
原创 万万没想到之聪明的编辑
题目链接双指针算法可以在O(n)内删除字符串的某一元素(从前到后扫一遍)i,j是每次向后推进一位,如果满足条件就j–#include<bits/stdc++.h>using namespace std;const int N=1e6+10;char str[N];int main(){ int n; cin>>n; while(n--){ cin&...
2019-04-15 20:36:39
2918
3
原创 祖孙询问
题目链接思路:如果x是最近公共祖先,输出1如果y是最近公共祖先,输出2其他 0#include<bits/stdc++.h>using namespace std;const int N=4e4+10;const int maxbit=20;vector<int> G[N];int dep[N];int father[N][maxbit];int l...
2019-04-13 22:18:11
614
原创 P3379 【模板】最近公共祖先(LCA)
题目链接lca模板#include<cstdio>#include<iostream>#include<algorithm>#include<set>#include<limits.h>#include<cstring>#include<vector>using namespace std;ty...
2019-04-13 21:55:04
161
原创 How far away ?
题目链接带权的倍增lca算法#include<bits/stdc++.h>using namespace std;const int N=4e4+10;const int maxbit=20;struct edge{ int to; int val;};vector<edge> G[N];int dep[N];int father[N][maxbi...
2019-04-13 21:52:27
239
原创 River Hopscotch
题目链接经典的二分问题,先处理了第一块和最后一块岩石因为距离从1到l都可以,所以想到用二分对于当前的距离mid,如果cnt>=N+2-M,说明di选小了;(意思是mid距离需要多少块岩石)如果cnt<N+2-M,说明di选大了;#include<cstdio>#include<algorithm>#include<iostream>u...
2019-03-27 09:35:12
196
原创 Sumsets
题目链接加上递推题目加上当i为奇数时,相当于从f【i-1】 加上1得到,即分f【i】=f【i-1】i为偶数,如果有1的话,相当于从f【i-2】 加上两个1得到没有1的话,方法数和f[i/2]相等(f【i/2】数列的每个数乘以2)#include<cstdio>#include<algorithm>#include<iostream>using...
2019-03-27 08:56:12
413
原创 小朋友排队
题目链接1.利用等差数列转化为求逆序对和正序对2.树状数组优化因为ans的输出问题WA了好多次。。#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;const ...
2019-03-13 23:26:10
488
原创 抢气球
题目链接复杂度N+M#include<iostream>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;const int N=100010;struct Node{ int v; int index;}node[N];int a[N]...
2019-03-13 17:55:16
508
原创 最敏捷的机器人
题目链接S-T模板题#include<iostream>#include<cstdio>using namespace std;typedef long long ll;const int N=100010;const int LogN=20;int n,k,log[N],f[N][LogN],z[N][LogN],a[N];int main(){ ...
2019-03-13 15:38:15
285
原创 简单题
题目链接思路类似于校门外的树那道题#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;typedef long long ll;const int N=100010;int c1[N],c2[N];int...
2019-03-13 11:57:53
267
原创 清点人数
题目链接树状数组模板题#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;typedef long long ll;const int N=500010;int c[N];int n,m;int low...
2019-03-13 11:31:28
838
原创 校门外的树
题目链接将区间修改转化为两个单点修改,则查询操作的结果为r左边的(个数减去l左边的)的个数,进而想到树状维护前缀和,具体思路是c1维护(的个数,c2维护)的个数,#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std...
2019-03-13 11:03:55
141
原创 数星星 Stars
题目链接y从小到大排序,y相同x从小到大排序,转化为当前星星i之前,x小于等于的i的星星个数,即为这个星星的级数(正序对问题)#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;typedef long lon...
2019-03-12 22:15:01
558
原创 楼兰图腾
题目链接树状数组求逆序对#include<iostream>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;const int N=200010;int n;int a[N],r[N],l[N],c[N];int ask(int x){...
2019-03-12 21:18:43
464
原创 回文数字
题目链接#include <iostream>#include <algorithm>using namespace std;const int INF=0x3f3f3f3f;int n,flag;int digit[100];bool judge(int n){ int k=0; do{ digit[k++]=n%10; n/=10; }whi...
2019-03-11 18:26:07
291
原创 分糖果
题目链接#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#include <iostream>#include <cmath>#include <vector>#include <map&
2019-03-09 14:22:53
143
原创 等边三角形
题目链接#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N=30;int a[N],vis[N];int dx[]={0,0,1,-1,1,1,-1,-1};int dy[]={1,-1,0,0,-1,1,1,-1};int...
2019-03-04 21:54:26
338
原创 愤怒的牛
经典的二分问题题目链接#include <cstring>#include <cstdlib>#include <algorithm>#include <iostream>#include <cmath>#include <vector>#include <map>#include <
2019-03-04 18:09:09
122
原创 校门外的树
题目链接#include <cstring>#include <cstdlib>#include <algorithm>#include <iostream>#include <cmath>#include <vector>#include <map>#include <stack&a
2019-03-04 14:50:13
103
原创 数星星 Stars
题目链接直接二维树状数组会超内存,利用贪心排序降维(题目数据已经有序)#include <cstring>#include <cstdlib>#include <algorithm>#include <iostream>#include <cmath>#include <vector>#include <...
2019-03-04 14:34:06
278
原创 Dungeon Master
题目链接#include <cstring>#include <cstdlib>#include <algorithm>#include <iostream>#include <cmath>#include <vector>#include <map>#include <stack&a
2019-03-03 20:34:51
107
原创 过河卒
题目链接#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#include <iostream>#include <cmath>#include <vector>#include <map&
2019-03-03 11:54:33
110
原创 机器人搬重物
题目链接bfs有很多细节注意处理,比如格子图转化为点图的碰撞判断,方向数组来实现机器人的转向等。。。#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#include <iostream>#include <cmath>...
2019-02-25 13:38:21
391
原创 填涂颜色
首先,分析题目,这是要将闭合的“1”里面的“0”改写成“2”,然后输出。由此,我们猛然发觉,只要‘0’的联通块中,没有在边界的就是闭合的‘0’;(发现这个,就等于做对了一半;)因为,从正面推,找闭合中的‘0’不好找。所以运用BFS或者DFS直接搜索边界中‘0’,所在的联通块,然后标记。最后输出时,去除‘1’点和标记了的点,剩下的输出为‘2’,就是正解啦!!!#include <cstd...
2019-02-24 18:49:06
144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人