![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法竞赛
文章平均质量分 56
算法竞赛
gzr2018
nudt PhD candidate,NeRF/3DGS
展开
-
地大2021校赛出题
对于点P[X,Y,Z]P[X,Y,Z]P[X,Y,Z],其在某个相机下在图像上的坐标为[u,v][u,v][u,v].如果已知相机的内参为KKK,外参为RRR和TTT,其中KKK为3∗33*33∗3的矩阵,RRR为3∗33*33∗3的矩阵,ttt为3∗13*13∗1的向量。按理想相机模型,点P[X,Y,Z]P[X,Y,Z]P[X,Y,Z]在该相机下的投影坐标计算如下:s(uv1)=(K0)(Rt0T1)(XYZ1)s\begin{pmatrix} u \\ v \\ 1 \\原创 2021-07-18 17:10:38 · 293 阅读 · 0 评论 -
将博客搬至CSDN
将博客搬至CSDNhava a try原创 2020-03-14 13:13:00 · 85 阅读 · 0 评论 -
阿里云超级码力第四场-闰年
代码写的比较丑,就是感觉这题有点意思。如果可以判断第二年是闰年,前一年一定是平年。int day_diff(int year_start, int month_start, int day_start , int year_end, int month_end, int day_end){ int y2, m2, d2; int y1, m1, d1; m1 = (...原创 2020-09-07 13:46:00 · 202 阅读 · 0 评论 -
2019北大计算机研究生推免机试题目总结
近一些年北大研究生推免机试题目都会在OpenJudge-百练平台上,但是比赛已经结束,不能提交题目,所以我借助Virtual Judge平台创建了一个比赛的链接,密码为fighting,和大家一起学习,同时写下一篇简单的总结。题目总的比较简单,都是简单的模拟和常用的算法。当然最后一题,没有看,估摸是个大模拟的题目,被题目长度击退,估计太麻烦也写不出。A - 有趣的跳跃读入数据,相邻...原创 2020-02-08 21:37:00 · 786 阅读 · 0 评论 -
寒假一小段编程训练记录
YeYe's寒假编程学习#开始时间2020年1月14号。virtual judge比赛密码:fighting。题目给出之前,给出一点小贴士,做完之后可以写一点做题心得和对每个算法的理解。可以先找一点尺取法原理看一看,尺取法是一种高效的枚举方法,尺取的复杂度一般是O(n),简单暴力枚举一般是平方的复杂度,学习尺取法需要理解其思想(这个比较简单),也需要留意其特点和适用范围。PO...原创 2020-01-14 15:57:00 · 120 阅读 · 0 评论 -
莫比乌斯反演学习博客
莫比乌斯反演123原创 2019-01-22 20:54:00 · 100 阅读 · 0 评论 -
RMQPOJ3264
Balanced Lineup POJ-3264DP分析设A[i]是要求区间最值的数列,F[i, j]表示从第i个数起连续2^j个数中的最大值。(DP的状态)初状态是F[i,0]=A[i]状态转移方程F[i, j]=max(F[i,j-1], F[i + 2^(j-1),j-1])void RMQ(int num) //预处理->O(nlogn){ for(...原创 2019-01-22 20:24:00 · 85 阅读 · 0 评论 -
LCA(Lowest Common Ancesor)
LCA(Lowest Common Ancesor)1.基于二分搜索算法预处理father[v][k]表示v的2的k次方层祖先,时间复杂度是O(nlogn),每次查询的时间复杂度是O(logn),预处理2k表的技巧在LCA之外也会用到。用链式前向星存图,相对vector邻接表要快。一次dfs预处理出全部点的父亲结点,然后用2分思想,处理出每个点的2的k次方的父亲结点,对于LCA核心...原创 2019-01-22 19:42:00 · 93 阅读 · 0 评论 -
计算几何板子
点的定义//考虑误差的加法double add(double a, double b){ if (abs(a + b) < EPS*(abs(a) + abs(b)))return 0; return a + b;}struct P{ double x, y; P() {} P(double x,double y):x(x),y(...原创 2019-01-22 16:18:00 · 146 阅读 · 0 评论 -
2016 Multi-University Training Contest 2题解报告
A - AcperienceHDU - 5734题意:给你一个加权向量,需要我们找到一个二进制向量和一个比例因子α,使得|W-αB|的平方最小,而B的取值为+1,-1,我们首先可以想到α为输入数据的平均值,考虑到是平方和,然后化简表达式,可以得到一个化简的式子,用n通分,可以做到没有除法,然后分子分母化简到互质。#define _CRT_SECURE_NO_WARNINGS#i...原创 2019-01-17 11:50:00 · 108 阅读 · 0 评论 -
Kruskal和prime算法的类实现,图的遍历BFS算法。
一.图的遍历#include<iostream>#include<queue>#include<vector>using namespace std;int n, m; //行数和列数const int maxn = 100;char g[maxn][maxn]; //图bool vis[maxn][maxn]; //访问标记数组...原创 2018-12-27 16:34:00 · 73 阅读 · 0 评论 -
AVL树C++实现(插入,删除,查找,清空,遍历操作)
AVL.h文件代码#pragma once#include<iostream>#include<stack>#include <assert.h>using namespace std;using namespace std;template<class T>struct AVLNode{ T data; ...原创 2018-12-13 10:36:00 · 353 阅读 · 0 评论 -
数论基础模板-----数论成长之路
最大公约数gcd gcd(f[n],f[m])=f[gcd(n,m)]int gcd(int a, int b) //a大于b{ return a % b == 0 ? b : gcd(b, a % b);}View Code最小公倍数Lcmint Lcm(int a,int b){return a/gcd(a,b...原创 2019-02-27 14:12:00 · 124 阅读 · 0 评论 -
LCA
LCA(Lowest Common Ancesor)链式前向星模板 1 #include<iostream> 2 #include<cstring> 3 #include<cmath> 4 #define mem(a,x) memset(a,x,sizeof(a)) 5 using namespace std; 6 ...原创 2019-02-26 20:12:00 · 72 阅读 · 0 评论 -
记忆化搜索--(01背包,完全背包,最长公共子序列,最长上升子序列)
记忆化动态规划学习笔记1.记忆化搜索与动态规划01背包问题1n的物品都有自己的wi,vi,背包最多可装载的重量为W,背包里的物体价值最大(1<<n<<100,1<=W<=10000,1<=wi,vi<=100暴力写法,存在较多的重复计算,复杂度O(pow(2,k))从第i个物品挑选总重小于j的部分int rec(int i, i...原创 2019-02-20 14:34:00 · 186 阅读 · 0 评论 -
Educational Codeforces Round 69 D Yet Another Subarray Problem
D Yet Another Subarray Problem思路求一段区间满足这个条件的最大值,这个等式的一个特点是,区间长度增加m,才减掉一个k,并且题目中m的数据范围是很小的。可以考虑枚举起点,但是我们枚举起点之后,后面的更新不知道怎么样快速更新求解。枚举小于m的数,0~m-1,也可以看成枚举前m-1个位置。对于起点之后,每增加m个位置,sum和需要减掉k。维护一个最小值...原创 2019-07-24 09:36:00 · 78 阅读 · 0 评论 -
二维线段树模板,建树,维护最大最小值
#include<bits/stdc++.h>using namespace std;const int N=805;#define son(x) (rt*4-2+x)#define ll long longstruct node{ int mn; int mx; void reset(){ mx=INT_MIN; ...原创 2019-07-19 13:42:00 · 107 阅读 · 0 评论 -
The 13th Chinese Northeast Collegiate Programming Contest C. Line-line Intersection
比赛链接http://https://codeforces.com/gym/102220题目链接https://codeforces.com/gym/102220/problem/C题目大意:给n组二维坐标点,每一组两个点,组成一条直线。问有多少对直线存在公共点。解题思路1.如何保存直线信息。用直线形式y=kx+b,维护k,b两个信息,虽然有一定精度损失,但是这个题也可以...原创 2019-06-08 11:05:00 · 3418 阅读 · 0 评论 -
2019山东省赛K - Happy Equation ZOJ - 4123 题解
题意: 一个数论题,要求满足如下等式的x有多少个。 思路: 当时比赛是,队伍看到这个题,也没有做太多的思考,就是无从下手,几乎放弃。但是看到学校另外两支队伍都过了这个题,感觉自己还是好菜。 打表可以发现,当a为奇数的时候答案为1。当a为偶数的时候,x一定也是偶数,这个还是比较明显的。 对左边进行推导,因为a为偶数,设a=2*t,所以a^x=2^x*t...原创 2019-05-17 19:13:00 · 128 阅读 · 0 评论 -
2019山东省赛B - Flipping Game ZOJ - 4114 题解
题意: 初始有n个灯泡,灯泡状态是0和1,。现在有k轮操作,每次改变且仅改变m个的灯的状态,给定n盏灯的初始状态的最终状态,求有多少种解决改变灯的方案满足可以满足题目条件。思路: 开始写的时候以为是组合计数和容斥原理什么鬼的,后来发现n,m,k的值都比较小,觉得应该是三维dp了,当然是瞎想,最后看题解还是一个二维dp可以解决的问题,只不过是三重循环。给队友lrr说了一下题...原创 2019-05-17 17:46:00 · 184 阅读 · 0 评论 -
hdu5784 极角排序+two point
题意:给定平面内若干点,要求求出这些点组成的三角形中锐角三角形的个数。思路:锐角三角形,即这个三角形中不存在直角或者钝角。所以现在的思路是不断枚举三个点,看他们之间组成的角度在什么范围内,这样的复杂O(n*n*n),时限内肯定不能通过。对于二维平面的向量,用点积和叉积可以较为方便的判断他们之间的角度。由于 锐角三角形个数=三角形个数-直角个数-顿角个数可以考虑枚举每一...原创 2019-05-16 08:45:00 · 72 阅读 · 0 评论 -
极角排序理解
这里我们说的极角排序,指的是对于二维坐标中的点,当然也可以说是向量。极角排序的用途一般是预处理二维平面中的点,使之变得相对有序,接下来在有序的条件小用O(n)或者O(nlogn)处理,而不是无序条件下的O(n*n)的枚举。应用链接https://www.cnblogs.com/gzr2018/p/10873518.html极角排序:根据数学知识,在极坐标的情况下,有一个原地,...原创 2019-05-15 20:01:00 · 425 阅读 · 0 评论 -
计算多边形的面积模板
//对多边形没有要求,但要求点按照顺时针或者逆时针的顺序1 for (int i = 0; i < x; i++)2 scanf("%lf%lf", &a[i][0], &a[i][1]);3 a[x][0] = a[0][0];4 a[x][1] = a[0][1];5 double sum = 0;6 for (int i = 0...原创 2019-05-14 22:46:00 · 96 阅读 · 0 评论 -
18年CUG校赛--恶魔的序列
问题描述 小龙同学最近为了完成毕业设计头痛不已。巨大的精神压力导致他经常做 噩梦。这天他又做了一个史诗般的噩梦。他梦见自己被困在一个密室中,密室 的门上有一个谜题,只有解开谜题才能打开此门,逃出这个密室,否则就会永 远地被困在密室中,更可怕的是他还会永远的困在梦境中,无法完成毕设,从 而面临毕业危机。 谜题是这样的,给定一个连续的正整数序列 n, n+1, n+2, ..., m,要求通...原创 2019-05-14 18:44:00 · 126 阅读 · 0 评论 -
二分图匹配模板
二分图匹配:知识点:交替路,增广路,匈牙利树,匈牙利算法求最大匹配数,bfs染色法判断是否是二分图(不存在奇数回路)例题:hud2063 匈牙利算法 1 #include <iostream> 2 #include<bits/stdc++.h> 3 //二分图匹配,在find函数理解。 4 //找增广路,增广路的定义是从为匹配的节点出发...原创 2019-05-07 09:45:00 · 67 阅读 · 0 评论 -
POJ 2342 Anniversary party
POJ 2342链接树形dp入门题,对于几乎没有接触树形dp的同学来说,是不错的练习题。题目大意:一棵有向树中,节点带权值 ,选择其中一些节点使得选择的总的节点权值最大,选择的规则是不能同时选择一个节点和他的直接父亲节点。解题思路:无疑是一个多决策问题,在多步决策中得到最优的答案。考虑dp,树形结构,树形dp 。设计状态:dp[i][0]表示没有选择该节点的最大价值和dp...原创 2019-04-28 10:43:00 · 59 阅读 · 0 评论 -
蓝桥杯真题-小计算器
蓝桥杯真题-小计算器链接小计算器题目描述模拟程序型计算器,依次输入指令,可能包含的指令有 1. 数字:'NUM X',X为一个只包含大写字母和数字的字符串,表示一个当前进制的数 2. 运算指令:'ADD','SUB','MUL','DIV','MOD',分别表示加减乘,除法取商,除法取余 3. 进制转换指令:'CHANGE K',将当前进制转换为K进制(2≤K≤36)...原创 2019-03-22 17:49:00 · 125 阅读 · 0 评论 -
判断点在三角形内部
利用叉积,如果点在三角形内部的话,则顺序处理全部边的话,这个点都在边的同一侧,直接用叉积判断double det(double x1,double y1,double x2,double y2){ return x1*y2-x2*y1;}//x0,y0为需要的检查点,其他点顺时针顺序bool check(double x0,double y0,double x1,doub...原创 2019-07-18 19:08:00 · 122 阅读 · 0 评论 -
第八届蓝桥杯省赛真题题解
2017年蓝桥杯试题解析不得不说自己还是太菜了,2017年蓝桥杯填空题自己就措手不及了。。t1标题:迷宫X星球的一处迷宫游乐场建在某个小山坡上。它是由10x10相互连通的小房间组成的。房间的地板上写着一个很大的字母。我们假设玩家是面朝上坡的方向站立,则:L表示走到左边的房间,R表示走到右边的房间,U表示走到上坡方向的房间,D表示走到下坡方向的房间。X星球的居民有点懒,不...原创 2019-03-22 14:19:00 · 458 阅读 · 0 评论 -
蓝桥杯九宫重排(bfs+用set去重)
题目连接#define _CRT_SECURE_NO_WARNINGS#include<cstdio>#include<iostream>#include<queue> #include<cmath>#include<set>#include<cstring>using namespace std;...原创 2019-03-17 15:30:00 · 100 阅读 · 0 评论 -
邮局 100分代码(dfs+多重剪枝)
蓝桥杯真题-邮局#include<iostream>#include<algorithm>#include<set>#include<string>#include<cstring>#include<vector>#include<cmath>using namespace std;c...原创 2019-03-06 20:34:00 · 82 阅读 · 0 评论 -
【蓝桥杯真题】地宫取宝(搜索->记忆化搜索详解)
链接[蓝桥杯][2014年第五届真题]地宫取宝题目描述X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。当小明走到出口时,如果他手中的宝贝...原创 2019-03-02 10:16:00 · 111 阅读 · 0 评论 -
问题 1433: [蓝桥杯][2013年第四届真题]危险系数
链接[蓝桥杯][2013年第四届真题]危险系数题目描述问题描述抗日战争时期,冀中平原的地道战曾发挥重要作用。地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。我们来定义一个危险系数DF(x,y):对于两个站点x和y (x != y), 如果能找到一个站点z,当z被敌人破坏后,x和y不连通,那么我们称z为关于x,y...原创 2019-02-28 19:44:00 · 68 阅读 · 0 评论 -
蓝桥杯[2017年第八届真题]分考场 详细注释
链接蓝桥杯[2017年第八届真题]分考场题目描述n个人参加某项特殊考试。为了公平,要求任何两个认识的人不能分在同一个考场。求是少需要分几个考场才能满足条件。输入第一行,一个整数n(1<n<100),表示参加考试的人数。第二行,一个整数m,表示接下来有m行数据以下m行每行的格式为:两个整数a,b,用空格分开 (1<=a,b<=n) 表示第a个人与第...原创 2019-02-27 20:17:00 · 132 阅读 · 0 评论 -
点在多边形内的判断
判断点在多边形内凸多边形凸多边形考虑叉积,因为在凸多边形中,我们假设围绕多边形走一圈,如果点在多边形内,那么这个点一直在我们的同一侧。按照这个性质,我们顺时针或者逆时针处理多边形上的点,叉积运算,算参考的和多边形上连续的两个点,如何叉积的结果符号发生变化,那么不再多边形内。double det(point p1,point p2,point p0){ return (p1...原创 2019-07-26 15:56:00 · 114 阅读 · 0 评论 -
线性基学习笔记+模板总结
线性基学习笔记+模板总结引入:一组线性无关的向量可以作为一组基底,用这个基底可以表示空间中的全部向量,而且这个基地的个数是确定的,他们线性无关,加入空间中的其他向量之后,就变得线性相关了。线性基:考虑这样的线性基性质(类比我们前面关于基的介绍):1.原序列里面的任意一个数都可以由线性基里面的一些数异或得到。2.线性基里面的任意一些数异或起来都不能得到0。3.线性基里面的数...原创 2019-07-24 09:44:00 · 78 阅读 · 0 评论 -
F. Daniel and Spring Cleaning cf(数位DP)
二进制数位dphttps://codeforces.com/contest/1245/problem/F求区间[L,R]中,a+b=a xor b 的a,b的组数二进制数位dp,对于是否有限制,加入数组这一维度第一发开始超时感觉很奇怪,dp数组只需要初始化一次,可能是因为二进制很多limit==true的情况吧,把这个加入数组状态就好啦。LTE#include<bits...原创 2019-11-07 20:44:00 · 121 阅读 · 0 评论 -
二维RMQ模板(hdu2888)
#include<bits/stdc++.h>using namespace std;const int N=305;const int M=9;int maze[N][N];int maxx[N][N][M][M];int n,m;void pre_gao(){ int up1=0,up2=0; while((1<<(up1+1))...原创 2019-11-02 19:31:00 · 94 阅读 · 0 评论 -
POJ 1651 Multiplication Puzzle 区间DP
题意:给定一串数字,求拿走中间的全部数字,使得代价最小。拿走一个其中数字的代价为这个数字和它左右的乘积。解法:考虑常规区间DP的写法,枚举区间长度,枚举起点,枚举分割点(这里的分割点是一段区间中最后拿走的数字是哪一个!可能是这个题的唯一需要考虑的点)设dp[i][j]表示那走i到j的全部数字最小花费,a[i]表示位置i的数字。dp[i][j]=min(dp[i]...原创 2019-08-24 12:06:00 · 65 阅读 · 0 评论 -
数位DP统计16进制每个数字出现的次数-模板
使用数位DP,统计任意进制,任意数字出现的次数inputn,kn表示16进制中前n个数k表示数字k出现的次数(11表示A,12表示B,以此类推)outputansans表示1-n中数字k出现的次数。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e5...原创 2019-10-30 18:36:00 · 407 阅读 · 0 评论