ACM训练题 加油
zlppassion
记住自己想要的是什么。
展开
-
数据结构和算法题目集
6-2顺序表操作集List结构定义typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */};四个所写函数/* 你的代码将被嵌在这里 */List MakeEm...原创 2018-09-19 21:10:36 · 1089 阅读 · 0 评论 -
线段树
https://www.luogu.org/problemnew/show/P2073这些花都很漂亮,每朵花有一个美丽值W,价格为C。小明一开始有一个空的花束,他不断地向里面添加花。他有以下几种操作:操作 含义1 W C 添加一朵美丽值为W,价格为C的花。3 小明觉得当前花束中最便宜的一朵花太廉价,不适合送给小红,所以删除最便宜的一朵花。2 小明觉得当前花束中最贵的一朵花太...原创 2019-05-31 11:41:10 · 65 阅读 · 0 评论 -
字符串处理
牛客多校第七场A String (01字符串最小表示法)最开始看到这题的时候,从题目里给的样例就认为是把原串拆成n个最长的非递减序列,后来发现并不是这样,因为题目所要求的是将其拆分为最少的部分,并且所有部分都是满足在不同表示顺序中具有最小的字典序,和我的想法有那么些不同。举个栗子:对于01101111这个串,按题目要求拆开所得的串就只有01101111,而按我自己的理解,就会拆成011...原创 2019-05-31 19:55:57 · 111 阅读 · 0 评论 -
搜索(dfs和bfs)
深度优先搜索P1025 数的划分https://www.luogu.org/problemnew/show/P1025//为了保证任意两个方案不相同(不考虑顺序),可以用last标记上一个数,下一个数不小于它即可//考虑到i不可能取到n,因为k>=2。然后sum是当前的和,sum+i*(k-cur),这是最小的情况,如果大于了就不必算了(这一步剪枝特别重要)#in...原创 2019-07-08 16:38:15 · 369 阅读 · 0 评论 -
二分
二分+前缀和(牛客多校第三场B)https://ac.nowcoder.com/acm/contest/883/B题意:输出最长01数目相等的子串和子序列的长度题解:子序列直接就是较小的那个*2,子串的话二分一下长度,每次用前缀和判一下有没有就可以了主要是没写过关于偶数单调的二分,记录一下注意二分时初始化的l,r,r=1e9,我开始用r=0x3f3f3f3f就过不了,(原来是因...原创 2019-07-13 15:24:47 · 65 阅读 · 0 评论 -
有关取模
牛客多校第一场J题https://ac.nowcoder.com/acm/contest/881/J当整数部分可以直接比较时,就直接比较出结果,如果整数部分相等了,在比较(x%a)/a 与(y%b)/b的大小#include <iostream>using namespace std;#define ll long long ll x,y,a,b;i...原创 2019-07-14 11:16:57 · 90 阅读 · 0 评论 -
分治法
p1017进制转换https://www.luogu.org/problemnew/show/P1017被除数=商*除数+余数,如果余数为负数,余数减去进制数(进制数即为除数),商加一#include <bits/stdc++.h>using namespace std;int n,r;stack<int>s;int main(){ c...原创 2019-07-16 11:18:40 · 102 阅读 · 0 评论 -
高精度
高精度加法我第一次用JAVA交题,第一次学习了高精度,蛮方便。需要注意一点,就JAVA交题的话,类名必须为Mainimport java.math.BigDecimal;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in=new S...原创 2019-07-24 10:19:25 · 83 阅读 · 0 评论 -
数学
牛客多校第七场BIrreducible Polynoimalhttps://ac.nowcoder.com/acm/contest/887/B题意:给你一个n次n+1项式(An*X^n+A(n-1)*X^(n-1)...A*X+A0),将系数An都给你,问你这个多项式是不是一个不可约多项式,可约多项式就是类型(x+1)*(x+2)=x^2+3*x+2 这一种,它是不可约多项式就...原创 2019-07-17 11:11:05 · 102 阅读 · 0 评论 -
递推与递归二分
P1233 木棍加工https://www.luogu.org/problem/P1233问题可以理解成一个矩形的覆盖问题,木棍的长与宽就是矩形的长与宽,如果一个矩形能够完全覆盖另一矩形(即一个木棍的长和宽都大于等于另一木棍)则处理下一木棍就不需要准备时间,这样就实现了本题的目标,即让加工木棍的准备时间最短。那么,怎样同时保证木棍的两个属性都具有单调性呢? 显然要先对一个属性排序...原创 2019-07-17 17:01:14 · 204 阅读 · 0 评论 -
堆
p1801黑匣子https://www.luogu.org/problem/P1801堆排序。注意到题目里面的信息“第i小的数,就是Black Box里的数的按从小到大的顺序排序后的第i个元素”,那么怎么维护第i小的数呢?维护一个大小为i的大顶堆,堆顶元素即是第i小的数。这里记h2表示大顶堆,h1表示小顶堆,每轮数据先读入h1,h1的顶部是这轮数据的最小值。这时候如果h2的大小为i,判...原创 2019-08-02 14:52:58 · 194 阅读 · 0 评论 -
计算几何
牛客多校第一场 Fhttps://ac.nowcoder.com/acm/contest/881/F别人的讲解:https://www.cnblogs.com/WAautomaton/p/11211864.html先记录一下写法#include <bits/stdc++.h>using namespace std;typedef long long l...原创 2019-08-14 22:44:30 · 87 阅读 · 0 评论 -
数据结构
Dijskra+dp牛客多校第四场J freehttps://ac.nowcoder.com/acm/contest/884/J题目大意:给定一张无向图,起点为S,终点为T,求S-T的最短路,其中可以有k次机会把一条路径的权值变为0。dis[i][j] 表示到i节点时 把j条边的权值变为0的最短距离#pragma GCC optimize(3)#include<bi...原创 2019-08-24 11:25:08 · 94 阅读 · 0 评论 -
矩阵快速幂
牛客多校第5场B-generator(十进制矩阵快速幂)题意:解答:用十进制矩阵快速幂那么乘以[A B] [1 0]n次的话,就可以得到Fn+1和Fn了#include<bits/stdc++.h>#define ll long longusing namespace std; ll x0, x1, a, b, m...原创 2019-08-25 11:07:16 · 76 阅读 · 0 评论 -
排序
p1177快速排序模板https://www.luogu.org/problemnew/show/P1177感觉也没什么技巧,多理解一下方法。#include <iostream>#include<bits/stdc++.h>using namespace std;int a[100005];void qsort(int l,int r){ if...原创 2019-05-14 21:19:30 · 70 阅读 · 0 评论 -
动态规划
01背包01背包是动态规划里最经典的一个问题题目:有 N 件物品和一个容量为 V 的背包。放入第 i 件物品耗费的费用是Ci,得到的价值是 Wi。求解将哪些物品装入背包可使价值总和最大。这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放戒丌放。用子问题定义状态:即 F[i, v] 表示前 i 件物品恰放入一个容量为 v的背包可以获得的最大价值。则其状态转移方程便是:F[i...原创 2019-04-24 19:47:32 · 473 阅读 · 1 评论 -
模拟
牛客多校第八场(模拟栈) G Gemstones题意:给出一个字符串S(length<=1e5),每有三个相同的相连就会像消消乐一样消除。问最多消除 多少次思路:实际上就是模拟栈,每有三个相连就退栈#include<bits/stdc++.h>using namespace std;//这道题就是简单的模拟栈const int maxn=100005;in...原创 2019-05-04 20:30:44 · 143 阅读 · 0 评论 -
算法竞赛入门经典第二部分基础篇
第6章数据结构和基础1、UVA11988 Broken Keyboard(破损的键盘):https://vjudge.net/problem/UVA-11988#author=pangda指针的链表实现方式是,当前节点的next指向下一个节点,用数组模拟就是 for(int i=next[0];i!=0;i=next[i]) i=next[i];就是一条链。你有一个破损的键盘。键盘上的...原创 2018-10-28 11:41:11 · 109 阅读 · 0 评论 -
ACM刷题网站
ACM刷题网站 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hziee.edu.cn/ 同济大学(TJU):http://acm.tongji.edu.cn/ 中国科技大学(USTC):http://acm.ustc...转载 2018-11-10 11:18:38 · 1497 阅读 · 0 评论 -
acm training
线性基https://www.cnblogs.com/vb4896/p/6149022.html取向量组中的两个向量a,b,把a,b中的某一个替换成a xor b, 替换前后向量组中的向量的线性组合得到的空间相同。 通俗的说就是 替换前后 能异或出来的值一样。11.12训练题目https://vjudge.net/contest/26982711.12E let the ballon...原创 2018-11-13 09:27:17 · 144 阅读 · 0 评论 -
并查集
POj 2236#include <iostream>#include<cmath>#include<vector>using namespace std;const int N=1e3+5;int n;double d;struct node{ double x,y; int sta;};double dis(node...原创 2019-04-11 21:39:57 · 140 阅读 · 0 评论 -
ACM备战刷题
快速幂https://ac.nowcoder.com/acm/contest/548/B,别人的讲解https://www.cnblogs.com/wmj6/p/10660232.htmlm/n,求小数点后K1到K2位数字,若不足则用 0 补齐#include<bits/stdc++.h>using namespace std;#define ll long long...原创 2019-04-17 19:03:48 · 353 阅读 · 0 评论 -
期望与 概率
https://vjudge.net/contest/271767#problem走迷宫思路:设花费时间 出迷宫的期望为E。每一个选择仅仅有两种情况——设当前门花费时间的绝对值为 T一:选择的门能够直接把你传送出去。期望为1 / N * T。二:选择的门把你传送到原来的位置,期望为1 / N * T。又回到初始状态,则出去的期望为1 / N * (T + E)。设全部能够将你传...原创 2019-04-09 23:59:26 · 374 阅读 · 0 评论 -
思维技巧题
牛客多校第八场C CDMA (技巧构造)题意:输入整数m( m∈2k∣k=1,2,⋯,10),构造一个由1和-1组成的m×m矩阵,要求对于任意两个不同的行的内积为0。题解:我觉得这个思路太优秀了,我自己想不到。具体说明看代码我的注释就好、#include <iostream>#include<bits/stdc++.h>using n...原创 2019-04-14 08:51:07 · 179 阅读 · 0 评论 -
有关递归
p1464 functionhttps://www.luogu.org/problemnew/show/P1464这个的题目就是要让我们用递归解决这道题,但是存在有些数字,会让这个递归函数重复调用很多次,所以应该考虑到做标记。我不会做标记,我学习了别人的方法:递归+记忆+宏函数#include <iostream>#include<bits/stdc++.h&...原创 2019-05-01 22:15:02 · 75 阅读 · 0 评论 -
单调队列
首先,学习的一篇博客https://blog.csdn.net/ljd201724114126/article/details/80663855#commentBox简单思想单调队列有单调递增和单调递减两种,一般来讲,队列的队首是整个队列的最大值或最小值具体步骤: 若队列为空,将A[i]从队尾入队 若队列不为空,将比A[i]大的元素都从队尾弹出,然后把A[i]入队 ...原创 2019-08-13 11:35:45 · 288 阅读 · 0 评论