自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 198. 打家劫舍

属于是dp的hello world级问题了。

2023-03-28 15:22:12 67

原创 124. 二叉树中的最大路径和

这个路径要么出现在子树上要么穿过当前根节点,对于穿过根节点的情况只需要找到左侧最大的分支和右侧最大的分支合并起来即可(如果小于0就不合并浙一分支)。因为C++11支持initializer_list, std::max可以放很多参数了。用老演员-0x3f3f3f3f来表示不存在。

2023-03-27 19:13:14 90

原创 二维空间中的三角形碰撞检测算法

想法在日常生活中, 我们经常会遇到判断两个三角形是否相交的问题。两个三角形如果不相交,那么一定存在一条直线将两个三角形分开。令这个直线等于两个三角形的六条边,如果存在一条边将两个三角形分开,则两个三角形不相交。GLM线性代数库,为OpenGL而生。在这里主要是讨论算法,所以它只是一个工具而已。替代可以选择Eigen库等。叉乘通过叉乘,我们可以判断出一个向量在另一个向量的“左右”。如果之前看过GAMES101或有线性代数基础,这不难理解。三维空间的二维平面为了方便得到叉乘的结果,我们默认z轴.

2021-08-06 16:22:25 991

原创 1818. 绝对差值和

题目链接:https://leetcode-cn.com/problems/minimum-absolute-sum-difference/class Solution {public: int minAbsoluteSumDiff(vector<int>& nums1, vector<int>& nums2) { constexpr int mod = 1e9 + 7; vector<int> temp = n

2021-07-18 16:31:27 114

原创 面试题 10.02. 变位词组

Leetcode每日一题随缘更新题目地址:https://leetcode-cn.com/problems/minimum-absolute-sum-difference/class Solution {public: int minAbsoluteSumDiff(vector<int>& nums1, vector<int>& nums2) { const int mod = 1e9 + 7; vector<int

2021-07-15 00:58:51 80

原创 LaTeX中的向量表示

一、粗体$$ \bold{a} $$或$$ \boldsymbol{a} $$二、箭头$$ \vec{a} $$上面这种会出现箭头很小的毛病,这种情况下要用:$$ \overrightarrow{AB} $$同理,左侧箭头则是:$$ \overleftarrow{AB} $$

2021-04-07 17:38:05 36002

原创 781. 森林中的兔子

题目链接:https://leetcode-cn.com/problems/rabbits-in-forest/class Solution {public: int numRabbits(vector<int>& answers) { int cnt[1000]; memset(cnt, 0, 4000); int ans = 0; for(int i : answers){ if(0

2021-04-05 00:11:05 91 1

原创 1103 Integer Factorization (30 分)

思路很简单,优化很坑人#include"bits/stdc++.h"using namespace std;int squar;int aimnum, steps;vector<int> ans, trueans;int cur_sum = 0;int max_sum = -1;bool ok = false;int vectorcmp(vector<int> a, vector<int> b){ int len = min(a.size(), b.s

2021-03-02 15:40:10 74

原创 PAT合集:Colors in Mars ,List Sorting , Median ,Travel Plan

Colors in Mars简单进制转换,没什么说的。#include"bits/stdc++.h"using namespace std;int main(){ int val1, val2, val3; cin >> val1 >> val2 >> val3; string str1 = " ", str2 = " ", str3 = " "; char msg[] = "0123456789ABC"; str1[1] = msg[val1 %

2021-02-22 13:19:12 100

原创 1012 The Best Rank (25 分)(简单Sort)

#include"bits/stdc++.h"using namespace std;char table[1000006];struct stud{ int C, M, E; double A; stud(){} stud(int c, int m, int e, double a){ C = c; M = m; E = e; A = a; }};struct node{ char subject; int rank; node(char a, int b){

2021-02-18 16:13:00 61

原创 1004 Counting Leaves (30 分)

#include"bits/stdc++.h"using namespace std;vector<int> table[100];int vis[100];int v_cnt[100];int n, noln;int ceng[100];int ans[100];int node_vis[100];void ans_set(int node, int c){ ceng[node] = c; int n = table[node].size(); for(int i =

2021-02-18 02:21:36 52

原创 1003 Emergency (25 分)(迪杰斯特拉)

经典题目#include"bits/stdc++.h"using namespace std;int diffway[1000];int table[1000][1000];int doctor[1000];int dis[1000];int vis[1000];int ansdoctor[1000];int main(){ memset(table, 0x3f, 4000000); memset(dis, 0x3f, 4000); memset(vis, 0, 4000); me

2021-02-18 02:19:22 189

原创 1007 Maximum Subsequence Sum (25 分)

经典问题 最大子段和坑点:If all the K numbers are negative, then its maximum sum is defined to be 0, and you are supposed to output the first and the last numbers of the whole sequence. 也就是说只有全是负数的时候才输出0 table[0] table[n-1],而 -1 -1 0 -1 -1 要输出 0 0 0#include"bits/std

2021-02-18 02:17:52 63

原创 L3-007 天梯地图 (30 分)(两次dijkstra)

一种dijkstra算法而已。(套路,利用prev放到queue里面作为答案)如果这两条路线是完全一样的,简单queue比较即可。(简单问题)#include "bits/stdc++.h"using namespace std;int from, dist;int len_table[600][600];int len_prev[600];int len_dis[600];int len_point[600];int len_vis[600];int tim_table[600][6

2021-02-15 03:00:02 315

原创 1101 Quick Sort (25 分)

#include"bits/stdc++.h"using namespace std;int qs[100100], table[100100];int main(){ int n; cin >> n; for(int i = 0; i < n; ++i){ cin >> qs[i]; table[i] = qs[i]; } sort(qs, qs + n); vector <int&g

2021-02-10 16:49:35 49

原创 1060 爱丁顿数 (25 分)

#include "iostream"#include "algorithm"using namespace std;int main(){ int n; cin >> n; int nums[100000]; for(int i = 0; i < n; ++i) cin >> nums[i]; sort(nums, nums + n); for(int i = nums[n-1] - 1; i >= 0; --i) if(i <= nums +

2021-02-08 18:00:30 63

原创 L2-026 小字辈 (25 分)

#include "iostream"#include "cstring"#include "algorithm"using namespace std;int table[100005]; // 初始数据,是树。int ceng[100005]; // 层数int solve(int val){ // 返回层数 if(val == -1) return ceng[val] = 0; // 如果未计算过,计算之 if(ceng[val] != -1) return ceng[val]; e

2021-02-08 17:56:29 74

原创 L3-013 非常弹的球 (30 分)(收敛级数和与简单物理)

显然是很多抛物线的跨度和,那么根据常识,抛物线最长跨度为仰角45°时。sum(x)=∑xi(每个xi对应一个Ei(动能))sum(x) = \sum x_i(每个xi对应一个E_i(动能))sum(x)=∑xi​(每个xi对应一个Ei​(动能))由题意和级数和有:En=E0∗(1−p)n,∑i=0nEi=E0pE_n = E_0 * (1 - p) ^n, \sum^n_{i = 0}E_i = \frac{E_0}{p}En​=E0​∗(1−p)n,i=0∑n​Ei​=pE0​​那么由简单运动分解

2021-02-08 17:43:24 178

原创 L3-005 垃圾箱分布 (30 分)(Dijkstra算法 + 堆优化)

PAT上样例一是过不了的 会得出3.2 但是提交能全部通过23333对各个垃圾箱(最多10个)使用Dij,因为会给出垃圾箱-垃圾箱的距离,所以垃圾箱和居民房在一个邻接矩阵里面,目测图挺大,故使用堆优化(很简单,加个priority_queue即可)。#include <bits/stdc++.h>using namespace std;int housen, gabn, maxlen, roadn; int table[1050][1050];int getid(char * str

2021-02-07 01:40:42 350

原创 L2-014 列车调度 (25 分)

很有意思和新意的题目我们上来肯定是一脸懵逼的,所以我们从一个简单的case开始。如测试数据:98 4 2 5 3 9 1 6 78肯定是先来的,我们开通第一个队列:8然后4来了,我们可以使用上一个队列:8 -> 4然后是2,同理:8 -> 4 -> 2然后是5,注意,我们不得不开第二队列:8 -》48 -> 4 -> 25然后是38-> 4 -> 25-> 3然后是9,不得不开一个新的8 ->4 -> 25-&g

2021-02-05 14:20:13 127 1

原创 L2-031 深入虎穴 (25 分)

如果一个门不是入口,那么一定在其他门后面。所以我们寻找门,只需在所有门后面的门找出没有出现的门即可。如测试数据:3 2 3 42 5 61 71 81 902 11 101 13001 1200粗体为门后的门,对于1-13的门的标号,唯有1没有出现,那么1是根节点(入口)那么我们BFS,因为结果唯一且不存在2条路通向一个门(DS:树),那么queue中最后一个节点即最远的节点。#include "bits/stdc++.h"using namespace std;vec

2021-02-05 12:51:29 193

原创 L3-003 社交集群 (30 分)

#include <bits/stdc++.h>using namespace std;int vis[1010];vector<int> table[1010]; // 每个人对应的兴趣vector<int> val_person[1010]; // 每个兴趣对应的人bool cmp(int a, int b){ return a > b;} void getHorde(int people, int & ans){ if(vis[peo

2021-02-05 12:43:06 162 1

原创 L3-004 肿瘤诊断 (30 分)

简单BFS,注意数组越界。#include <bits/stdc++.h>using namespace std;int table[65][1290][130], n, x, y;int minvol = 0;int ans = 0;struct point{ int xx; int yy; int zz; point(int a, int b, int c){ xx =a; yy =b; zz =c; } point(){ }};bool is

2021-02-05 12:35:00 97

原创 L3-002 特殊堆栈 (30 分)

堆栈是一种经典的后进先出的线性结构,相关的操作主要有“入栈”(在堆栈顶插入一个元素)和“出栈”(将栈顶元素返回并从堆栈中删除)。本题要求你实现另一个附加的操作:“取中值”——即返回所有堆栈中元素键值的中值。给定 N 个元素,如果 N 是偶数,则中值定义为第 N/2 小元;若是奇数,则为第 (N+1)/2 小元。输入格式:输入的第一行是正整数 N(≤10​5​​ )。随后 N 行,每行给出一句指令,为以下 3 种之一:Push keyPopPeekMedian其中 key 是不超过 10​5

2021-02-03 17:34:44 137

原创 L2-018 多项式A除以B (25分)

L2-018 多项式A除以B (25分)这仍然是一道关于A/B的题,只不过A和B都换成了多项式。你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数。输入格式:输入分两行,每行给出一个非零多项式,先给出A,再给出B。每行的格式如下:N e[1] c[1] … e[N] c[N]其中N是该多项式非零项的个数,e[i]是第i个非零项的指数,c[i]是第i个非零项的系数。各项按照指数递减的顺序给出,保证所有指数是各不相同的非负整数,所有系数是非零整数,所有整数在整型范围内。输出格式:分

2021-01-29 22:21:35 161

原创 一笔画问题 NYOJ - 42

一笔画问题 NYOJ - 42描述zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。规定,所有的边都只能画一次,不能重复画。输入第一行只有一个正整数N(N&amp;amp;lt;=10)表示测试数据的组数。每组测试数据的第一行有两个正整数P,Q(P&amp;amp;lt;=1000,Q&amp;amp;lt;=2000),分别表示这个画中有多少个顶点和多少条连线。(点的编...

2018-11-20 14:41:39 285

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除