- 博客(54)
- 收藏
- 关注
原创 GYM闲逛 : CodeRams Algorithm Contest #2-6. Favorite Product
这场其他比赛也是挺有意思的,同学们可以去看看都没有特别难的!传送门(题目链接)题面详解: 给你 嗯 个数 从中挑三个使得这三个之积等于 凯 ,求方案数思路:枚举1.枚举 a * a * a == k2.枚举 a * a * b == k3.枚举 a * b * c == k分析结束;//Andong 2021/2/20 22:04ll a[maxn];int main() { ll n, k, tmp, MAX = 0; scanf("%lld%lld", &n
2021-02-20 22:07:20
318
原创 ZCMU 1743: 铺地毯 2月3号每日训练
题面为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯,一共有n张地毯,编号从 1 到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。Input输入共 n+2行。第一行有一个整数n,表示总共有 n张地毯。接下来的 n行中,第 i+1行表示编号 i的地毯的信息,包含四个
2021-02-03 19:47:59
209
原创 zcmu 5142: 巴比伦塔
Description有n(n<=30)种砖块,已知三条边长,每种都有无穷多个。要求选一些立方体摞成一根尽量高的柱子(每个砖块可以自行选择一条边作为高),使得每个砖块的底面长宽分别严格小于它下方砖块的底面长宽,求塔的最大高度。(多组输入,有n == 0的情况,数据都在int范围内)Input第一行 T 组 nn个方砖a,b,c砖的三维.(T<=100,n<=30,0<= a,b,c<=1e6)Output见样例Sample Input4110 20 30
2021-01-29 20:56:44
474
2
原创 kaungbing 匹配练习
HDU 1045 Fire Net题面:给你一个不大于4*4的方格然后中间会有障碍格子,问其中能最多有多少个标记的方格,是无法直接(横竖方向上没有标记,或者被障碍挡住)达到的,看样例应该也能懂;题解:每一个 行 对应一个 列 如果一行之中多了一个障碍物 分割了这一行那么当作新 行 来算 ,同理 列也是那么处理(这题爆搜也能过,不过和我预想练习的目的不一致就不在此解答了)#include<cstdio>#include<iostream>#include<cmath&
2020-11-14 15:23:41
208
原创 PTA 1056 Mice and Rice (25分)
题面:自己读,甲级题面自己读;神奇的做法 一开始以为就是一个堆栈的模拟 没考虑到复杂度写到一半发现 查找中位数的复杂度实在是太高了O(nnlog) 那不就裂开了嘛后来想到 中位数 可以单独维护一个数组什么的就可以了 就去自己的知识图谱里去找有没有可以维护的一个知识点 说到查找就想到了一个二分 然而二分的是有序 的数组 而且得连续 然后瞄了一眼数据范围 发现友好的n(1e5)想到这点 就想到了 树状数组去维护一个数字出现的次数 然后query 查询的复杂度是O(log(maxn))的那就有思路了 开干
2020-11-07 13:49:30
169
原创 2019 CCPC 秦皇岛 A. Angle Beats
题面链接题目大意: 在二维平面上 给你n个点 有q次查询 每次查询会有一个坐标Q,询问 有多少点对 和 Q点 能组成直角三角形;思路:分两个情况:一:Q点是直角顶点 二:Q点不是直角顶点;第一个情况:只需要看有多少个和Q点组成的斜率互乘为-1,第二个情况:就是看Q点和任意一个点 组成的直线的斜率 和 这个点 和 点集合中的点组成的直线有没有存在互乘为-1的注意点: 会有卡时间需要注意不要用map 建议用哈希查找表 或者 hash_map 或者 unordered_map维护时间.
2020-10-27 17:01:16
238
原创 洛谷 P1005 矩阵取数游戏
题面描述明显dp,看着像区间dp,状态是由大到小写的也可由小到大.这边展示两种转移方式的代码不同的是从大到小要预处理一下2的幂级数速度上没明显差//small->big#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define ll lo
2020-07-29 16:58:13
142
原创 2020牛客多校第五场 B-graph
CodeForces 888G Xor-MSTCF888G的题解题目变式:预处理一下就当888G做#include <bits/stdc++.h> using namespace std; #define ll long longll input(){ ll x=0,f=0;char ch=getchar(); while(ch<'0'||ch>'9') f|=ch=='-',ch=getchar(); while(ch>.
2020-07-27 22:29:14
309
原创 异或树 CodeForces 888G Xor-MST
传送门朴素的Borůvka简要说明:1.用数组记录每个子树的最近邻居。(类似Prim)2.对于每一条边进行处理(类似Kruskal)如果这条边连成的两个顶点同属于一个集合,则不处理,否则检测这条边连接的两个子树,如果是连接这两个子树的最小边,则更新由于每次循环迭代时,每棵树都会合并成一棵较大的子树,因此每次循环迭代都会使子树的数量至少减少一半,所以,循环迭代的总次数为O(logn)O(logn)O(logn)。每次循环迭代所需要的计算时间:第2步,每次检查所有边O(m)O(m)O(m),去更新
2020-07-27 22:27:53
228
原创 2020牛客多校训练 E-Easy Construction
题意 给定 n,k,问是否可以构造一个 1~n 的排列 P,使得对于 1~n 中任意的数 i,P 都存在一个 长为 i 的子区间,其和模 n 余 k。有解输出任意一组,无解输出 -1。思想:分 奇偶讨论可以依次添加,偶数只有k=(n+1)*n/2%k 奇数只有k=0 #include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring>#in...
2020-07-27 22:22:58
221
原创 2020牛客多校训练 G-Grid Coloring
我怀疑我偷渡成功#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define ll long longusing namespace std;const int INF=0x3f3f3f3f;const double pi=acos(-1).
2020-07-27 22:18:04
170
原创 2020牛客多校第六场 B Binary Vector
对就是这样#include<bits/stdc++.h>using namespace std;typedef long long LL;typedef unsigned long long ULL;const int INF = 0x3f3f3f3f;const double pi=acos(-1),eps=1e-8;const int maxn = 1<<17;const int mod = 1e9+7;const int N = 2e7+10;i...
2020-07-27 20:45:39
200
原创 2020牛客多校第六场 K K-Bag
题意• K-bag序列定义为由多个1-k的排列顺序连接起来的序列• 想问你给定序列是不是k-bag的连续子序列思路:离散化+动态规划动态规划部分需要证明一个可行区间,可行区间的意思就是在[x-k,x]范围内无同类的数字,标记下标 lp[i] 表示上一个可行区间([lp[i],i).然后dp[i]表示当前位置作为环结是否合法.然后只要满足当前位置是个合法环结且lp[n]<=i+1即可#include<bits/stdc++.h>#include<iostream>
2020-07-27 20:29:02
244
原创 2020牛客多校第三场 F-Fraction Construction Problem
#include <bits/stdc++.h>using namespace std;using ll = long long; const int N = 2e6 + 5;bool isnp[N];int pfactor[N];vector<int> primes; void init() { isnp[0] = isnp[1] = 1; pfactor[1] = 1; for (int i = 2; i < N; ++i) {.
2020-07-24 19:46:10
272
原创 2020牛客多校第三场 E Two Matchings
这道题目好像看到好多种做法白话解释:就是类似两两交换,然后求与原来的差值的和最小,然后保证n>=4且是偶数那就有点贪心的味道了,老贪心了,来来来 看看怎么构造使得绝对值的差最小,国际惯例遇到数组先sort,然后看绝对值的贡献,不就是跨过的区间越小越好不是吗 然后就去算贡献了代码:#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring>#incl
2020-07-24 19:35:45
173
原创 2020牛客多校第三场-J Just Shuffle
题面:初始序列1,2,3,4,5…设为a,有一个置换p,a置换k次后成了b;题目给了b,k,求a置换一次的结果;解法:对于b可以求出一些循环节,长度设为r,设一个数z,使得zk%r==1;即a转zk次后为1;即是答案;z可以用逆元也可以直接试,不超过r;#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring>#include<algorithm&g
2020-07-24 19:15:00
147
原创 2020牛客多校训练第一场_A( B-Suffix Array) 后缀数组
题意: 给你一个整数N 和一个长度为N的字符串S,问经过B-function(后面说明)后,S的所有后缀的排序(按照字典序排序)位次如何。B-function的意思;就是对于当前的字串(后缀)进行操作操作如下:翻译一下就是:对于子串中的每一个字符有一个权值,权值定义为在(1,i)i为当先子串开始下标 离i最近的相同字符的距离,若没有则为0样例解释:5abaab分解的得到五个后缀:后缀B-functionidabaab002131baab00132aa
2020-07-14 22:24:14
217
原创 2020牛客多校第二场 F.Fake Maxpooling
谜一样的题目 看到有倍增的做法,偷懒的,双向队列维护矩阵的,奇奇怪怪的,//偷懒的#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define ll long longusing namespace std;const int INF=0x3f3f3
2020-07-14 22:22:45
196
原创 2020牛客多校第二场 C,Cover the Tree
题面不上了给个链接题意:因为给的是一个生成树 ,随机选两个点(链)就会找到一条唯一的路径,然后题目要求选尽量少的链去覆盖全部路径,问你的方法最少是几个然后输出点对。样例解释:答案是22 34 52 3覆盖了2-1,1-3;4 5覆盖了4-2,2-5 那么所有的边被覆盖;思路:先找出所有度数为1的点,再找出一个度数不为1 的点作为源,从这个圆开始dfs找出所有度数为一的次序(用vector维护)这样找出来有个好处不会出现例外情况下面会解释例外,然后所有点对按照dfs序差距超过一半配对,奇
2020-07-14 22:15:36
238
原创 2020牛客多校第二场 B.Boundary
题意:选择一个点使得这个点构成的圆 经过远点和其他点要求 求出经过点最多的圆的点的个数;解法:pair 维护点个数和坐标,最后找最多的那个;坑点:注意共线,注意最后可能是一个或者两个点的例外情况,注意公式正确代码:#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmat.
2020-07-14 22:04:02
295
转载 牛客暑期多校训练营(第一场)J
转载:https://blog.youkuaiyun.com/weixin_43911947/article/details/107309924hit:用分部积分法求定积分,如下图解所以只需要求n ! ^ 2 / ( 2*n + 1 ) !就可以了 (!为阶乘).由于n会比较大,用于除法会失精度,因此需要用到费马小定理:(当mod为质数时)a / b % mod = a * qpow(b , mod - 2) % mod;(qpow是快速幂)#include<bits/stdc++.h>
2020-07-14 21:55:41
251
1
原创 桶排序/基数排序 图文理解(java and c/c++实现)
今天做了个后缀数组 , 其中有部分代码需要基排思想所以温故一下,开始讲解吧;基数排序基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或binsort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r )m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。操作过程(1)假设有欲排
2020-07-13 10:28:00
212
原创 2018Noip-摆渡车(两种解法)
2018Noip-摆渡车题面链接方法一:这是一道题意简明的题,看网上解法却五光十色 色色俱全 全心全意 意乱神迷。抽象理解这个题目:不妨认为时间是一条数轴,每名同学按照到达时刻分别对应数轴上可能重合的点。安排车辆的工作,等同于将数轴分成若干个左开右闭段,每段的长度 ⩾m\geqslant m⩾m。原本的等车时间之和,自然就转换成所有点到各自所属段右边界的距离之和。解法:列出转移方程先处理...
2020-03-10 02:42:31
1509
原创 Contest1307 - 浙江中医药大学寒假抗疫训练赛二
来来来 来个详细思路传送门:题面链接Problem A: Mo’s AlgorithmDescriptionMo’s algorithm can solve some difficult data structure problems. Like this: You are given an array a_1,a_2,…,a_n and m queries. In each query,...
2020-02-20 14:10:20
527
2
原创 Contest1306 - 浙江中医药大学寒假抗疫训练赛一
话不多说开整;难度排行:A>B>F>E>G>D>CProblem A: Not A + BDescription输入两个非负整数a, b,你需要输出一个最小的正整数c,满足c≠a + b。Input第一行包含一个正整数T(1 ≤ T ≤ 10000),表示测试数据的组数。每组测试数据包含一行两个整数a, b(0 ≤ a, b ≤ 10000)。O...
2020-02-18 19:52:44
1462
原创 2020牛客寒假算法基础集训营1
A-honoka和格点三角形题目描述honoka最近在研究三角形计数问题。 她认为,满足以下三个条件的三角形是“好三角形”。1.三角形的三个顶点均为格点,即横坐标和纵坐标均为整数。2.三角形的面积为 。3.三角形至少有一条边和 轴或 轴平行。honoka想知道,在平面中选取一个大小为 的矩形格点阵,可以找到多少个不同的“好三角形”?由于答案可能过大,请对 取模。输入描述:两个正整...
2020-02-14 20:32:09
151
原创 牛客:Laptop(二维偏序)
题面:https://ac.nowcoder.com/acm/contest/16/AFST是一名可怜的小朋友,他很强,但是经常fst,所以rating一直低迷。 但是重点在于,他非常适合ACM!并在最近的区域赛中获得了不错的成绩。 拿到奖金后FST决定买一台新笔记本,但是FST发现,在价格能承受的范围内,笔记本的内存和速度是不可兼得的。 可是,有一些笔记本是被另外一些“完虐”的,也就是内...
2019-12-30 15:54:08
334
原创 2019 Multi-University Training Contest 7-Final Exam
原文链接:https://blog.youkuaiyun.com/qq_41117236/article/details/99313279【题解】思路:考官最坏情况拿m来分配给n+1-k份卷子来卡你最小的n+1-k个复习时间段,那么最少可以需要m+1个小时分给你的最小的n+1-k个复习时间段,保证了至少有一份试卷不会被卡掉,剩下k-1个复习时间要保证大于等于你最小的n+1-k个复习时间段的最大值。最糟糕的...
2019-08-12 19:53:20
195
原创 2019 Multi-University Training Contest 7-1011 Kejin Player
题面链接:Kejin Player求个期望;#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#include<queue>#include<...
2019-08-12 19:50:24
138
原创 hdu多校-第四场Just an Old Puzzle
You are given a 4 × 4 grid, which consists of 15 number cells and an empty cell.All numbers are unique and ranged from 1 to 15.In this board, the cells which are adjacent with the empty cell can mov...
2019-08-05 11:31:06
166
原创 hdu多校第4场-Minimal Power of Prime
Minimal Power of PrimeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 5331 Accepted Submission(s): 328Problem DescriptionYou are given a ...
2019-08-05 11:21:07
125
原创 牛客多校第六场——Upgrading Technology
题目描述Rowlet is playing a very popular game in the pokemon world. Recently, he has encountered a problem and wants to ask for your help.In this game, there is a technology tree system. There are n kin...
2019-08-05 11:13:20
244
原创 Manacher(马拉车)算法
回文处理#include<string>#include <vector>#include<iostream> #include <algorithm>using namespace std;string Manacher(string s){ string sNew = "$#"; for (auto iter...
2019-07-28 10:42:01
100
原创 ac自动机
功能:查询串,返回最匹配的串#include <queue>#include <cstdlib>#include <cmath>#include <cstdio>#include <string>#include <cstring>#include <iostream>#include <a...
2019-07-28 10:32:36
102
原创 平衡树(第K大)
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;#define maxn 1000005typedef struct sbtnod{ int key,left,right,size;}sbtno...
2019-07-25 20:44:08
416
原创 hdu-1005 Number Sequence 解题报告
题面链接:hdu-1005 Number Sequence题面:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.给你这个公式 给你A B 让你输出第n个数的大小;思路:找规律是不可能的 一辈子不可能的 有的规律你找不到的 找到了也T了 别找了所以用矩阵快速幂来做 ;如果你问矩阵的性质在这有什么用 那我就这样解...
2019-07-20 10:21:39
263
原创 ZCMU暑期训练四-J - Lose it!
You are given an array aa consisting of nn integers. Each aiai is one of the six following numbers: 4,8,15,16,23,424,8,15,16,23,42.Your task is to remove the minimum number of elements to make this a...
2019-07-19 10:03:39
219
原创 ZCMU暑期训练四-I - Valeriy and Deque
Recently, on the course of algorithms and data structures, Valeriy learned how to use a deque. He built a deque filled with nn elements. The ii-th element is aiai (ii = 1,2,…,n1,2,…,n). He gradually t...
2019-07-18 21:49:57
204
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅