自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 叉积判断点是否在三角形内(包括边上)

叉积判断点是否在三角形内(包括边上)模板代码如下:struct P{ int x,y;};int cross(P &a,P &b,P &c){ //返回ab,ac的叉积. return (b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y); //x1y2-x2y1 数据过大时要开long long }bool jg_left(P &a,P &b,P &c){ //判断点c 是否在直线ab左边. return

2020-08-30 13:40:27 964

原创 超码在线编程大赛初赛 第2场(简要题解)

三角魔法思路:叉乘判断即可。区间异或思路:rmqrmqrmq求区间最值,线段树也可。五字回文思路:暴力。小栖的金字塔思路:求(1,1)(1,1)(1,1)走到(n,n)(n,n)(n,n)的路径数(可以向右,下,斜着走),施罗德数SnS_nSn​。可以用超级卡特兰数FnF_nFn​递推。(n+1)Fn=(6n−3)Fn−1−(n−2)Fn−2(n+1)F_n=(6n-3)F_{n-1}-(n-2)F_{n-2}(n+1)Fn​=(6n−3)Fn−1​−(n−2)Fn−2​S1=F0=1S

2020-08-30 12:49:14 342

原创 超码在线编程大赛初赛 第1场(简要题解)

前言:赛后做了一下题目,感觉题目难度还可以。树木规划思路:lower_bound+lower\_bound+lower_bound+贪心即可。正三角形拼接思路:显然最多不超过222次,然后mapmapmap统计特判即可。大楼间穿梭思路:dp+dp+dp+单调栈,进行状态转移。对称前后缀思路: 中心扩展法,暴力统计回文串的贡献即可。...

2020-08-29 17:59:47 977

原创 Java的4种权限修饰符

JavaJavaJava的444种权限修饰符权限修饰符。范围:public>protected>(default)>privatepublic>protected>(default)>privatepublic>protected>(default)>private其是否能访问情况:Y:YES,N:NOY:YES,N:NOY:YES,N:NO同一个类:YYYYYYYYYYYY同一个包:YYYNYYYNYYYN不同包的子类:YYNNYYNNY

2020-08-29 13:21:24 288

原创 牛客练习赛68(ABC)简要题解

牛客练习赛68(ABC)简要题解A.牛牛的mex思路:因为题目限制nnn个不相同属于[0,n)[0,n)[0,n)的数,所以可以求前后缀的最小值,也即min(pre[l−1],suf[r+1])min(pre[l-1],suf[r+1])min(pre[l−1],suf[r+1])为答案,注意pre[0]=suf[n+1]=npre[0]=suf[n+1]=npre[0]=suf[n+1]=nB.牛牛的算术思路:这种多维求和求积式一般是化简。∏i=1n∑j=1i∑k=1jijk\prod_{i=

2020-08-29 11:49:44 406

原创 AtCoder Beginner Contest 063(CD)

AtCoder Beginner Contest 063(CD)C - Bugged思路:特判总和是否满足,若不满足再遍历去掉一个数是否满足,否则输出0.D - Widespread思路:二分。考虑操作转换为:所有数减BBB,再选择一个数减A−BA-BA−B。然后二分操作判断即可。bool check(ll x){ ll s=0; for(int i=1;i<=n;i++){ if(a[i]-B*x<=0) continue; s+=(a[i]-B*x+A-B-1)/(

2020-08-28 09:39:47 343

原创 AtCoder Beginner Contest 062(CD)

AtCoder Beginner Contest 062(CD)C - Chocolate Bar思路:暴力。因为只能切222刀,所以最多只有444种情况,然后暴力枚举第一刀横着切或者竖着切的长度即可。ll fun(ll s,ll x,ll y){ ll a=x>>1,b=y>>1; ll t1[3],t2[3]; t1[0]=abs(a*y-s),t1[1]=abs((x-a)*y-s),t1[2]=abs(a*y-(x-a)*y); sort(t1,t1+3);

2020-08-27 10:03:03 356

原创 拜托了,牛老师(DFS)

拜托了,牛老师(DFS)思路:dfsdfsdfs,因为nnn最大只有1e61e61e6,考虑因数最多只有两百多,因为要求因数不同,可以考虑以递增顺序剪枝dfsdfsdfs。时间复杂度:O(kn)O(k\sqrt{n})O(kn​)#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e3+5,M=2e4+5,inf=0x3f3f3f3f,mod=1e9+7;#define mst(a

2020-08-26 20:30:37 354

原创 Java的学习记录

JavaJavaJava的学习记录前言:与CCC语言相差不大,上手非常简单,自从用了IDEAIDEAIDEA,效率简直翻倍,貌似VScodeVS codeVScode也可以玩类似的东西。psvm=mainpsvm=mainpsvm=main表示mainmainmain方法。public static void main(String[] args){}soutsoutsout输出函数,lnlnln表示换行,若不想换行就去掉。System.out.println();数组初始化分两种

2020-08-26 13:36:02 311

原创 AtCoder Beginner Contest 061(CD)

AtCoder Beginner Contest 061(CD)C - Big Array思路:mapmapmap排序记数,注意开LLLLLLD - Score Attack此题题意严重不清晰,题目只要求d[n]d[n]d[n]是否可以无限增加,但是正解是点nnn必须在正环中才行。因为考虑spfaspfaspfa判正环,或者暴力bellman−fordbellman-fordbellman−ford特判第nnn次和第2n2n2n次的d[n]d[n]d[n]是否相同来判正环。spfaspfaspf

2020-08-26 10:18:30 373

原创 cmd的简单使用

cmdcmdcmd的简单使用。1.启动win+Rwin+Rwin+R键,输入cmdcmdcmd后回车。2.切换盘符输入盘符名称:::ep:ep:ep:c:⇔C:d:⇔D:c:\Leftrightarrow C:\\d:\Leftrightarrow D:c:⇔C:d:⇔D:3.进入文件夹cdcdcd 文件夹名称4.进入多级文件夹cdcdcd 文件夹1\文件夹2\ …\dots…5.返回上一级cd..cd\quad ..cd..6.返回根路径cd\cd\quad\backs

2020-08-25 12:36:02 301

原创 AtCoder Beginner Contest 060(CD)

AtCoder Beginner Contest 060(CD)C - Sentou思路:取nnn个区间的并集就好。D - Simple Knapsack思路:背包问题的变式,容量非常大。1.暴力枚举,因为最多4种物品,枚举每种物品个数。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e3+5,M=2e4+5,inf=0x3f3f3f3f,mod=1e9+7;#defin

2020-08-25 10:08:10 375

原创 CSS的复合选择器

前言:主要做一下笔记,以免搞忘记了。1.后代选择器类似于家族关系写就行了。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title>

2020-08-24 19:24:21 367

原创 AtCoder Beginner Contest 059(CD)

AtCoder Beginner Contest 059(CD)以后只写C,DC,DC,D的题解。C - Sequence思路:贪心暴力,显然只有两种情况,正负正负或者负正负正,然后贪心即可。D - Alice&Brown思路:博弈找规律。显然有边界情况:我们假设x≤yx\leq yx≤y(因为两堆石子等价)(0,0),(0,1),(1,1)(0,0),(0,1),(1,1)(0,0),(0,1),(1,1)是必败的情况。这是abs(x−y)≤1abs(x-y)\le1abs(x−y

2020-08-24 09:43:08 387

原创 AtCoder Beginner Contest 058(ABCD)

AtCoder Beginner Contest 058(ABCD)A - ι⊥l思路:特判B - ∵∴∵思路:模拟C - Dubious Document思路:暴力统计下每个字母出现的最小次数,然后排序。D -求和优化。我的公式:考虑包含某个yiy_iyi​ 出现的所有对的贡献分类求和。sy=∑i=2m−(m−i+1)×yi−1s_y=\sum_{i=2}^m-(m-i+1)\times y_{i-1}sy​=∑i=2m​−(m−i+1)×yi−1​sxs_xsx​同理。最后答案即

2020-08-23 07:43:58 440

原创 学习HTML的记录

学习HTMLHTMLHTML的记录<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>我的第二个界面</title></head><body>

2020-08-22 14:00:26 406

原创 AtCoder Beginner Contest 057(ABCD)

AtCoder Beginner Contest 057(ABCD)A - Remaining Time直接模拟取模。B - Checkpoints暴力枚举。C - Digits in Multiplication一开始想复杂以为是质因数分解,因为只要求找出所有的pair(A,B),AB=Npair(A,B),AB=Npair(A,B),AB=N显然可以暴力枚举AAA。D - Maximum Average Sets贪心,显然取aaa个最大的是最优的,因为越取多,数可能会变小,平均值也可能

2020-08-22 10:32:21 423

原创 D. Maximum Distributed Tree(DFS)

D. Maximum Distributed Tree(DFS)思路:dfsdfsdfs讨论一下mmm与n−1n-1n−1的大小关系,然后计算每条边的贡献次数排序即可。没想到最后因为数组开小了一直没ACACAC,气死了。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+5,M=6e4+5,inf=0x3f3f3f3f,mod=1e9+7;#define mst(a,b) m

2020-08-22 09:02:09 432

原创 Python中正则表达式的使用

PythonPythonPython中正则表达式的使用re.compile()re.compile()re.compile() 返回一个正则表达式的对象(pattern)(pattern)(pattern),可用于match,searchmatch,searchmatch,search函数。match,searchmatch,searchmatch,search返回一个匹配对象match objectmatch\ objectmatch objectgroups()groups()

2020-08-21 12:28:03 362

原创 AtCoder Beginner Contest 056(ABCD)

AtCoder Beginner Contest 056(ABCD)A - HonestOrDishonest思路:特判B - NarrowRectanglesEasy思路:讨论特判。C - Go Home思路:贪心,求和第一个大于等于xxx的iii即为答案。D - No Need思路:考虑答案是排序后的某个前缀。因为当a[i]a[i]a[i]是necessarynecessarynecessary时,x≥a[i]x\ge a[i]x≥a[i]都是necessarynecessarynec

2020-08-21 10:22:00 490

原创 Python中Decorator的一些应用

Python中Decorator的一些应用import timedef display(func): #decorator装饰器 def wrapper(): #包装 t1 = time.time() func() t2 = time.time() print(t2-t1) return wrapperdef jg(x): for i in range(2,x): if x % i == 0

2020-08-20 23:44:55 330

原创 Lambda表达式的应用。

LambdaLambdaLambda表达式的应用。1.作为函数。2.作为排序时按keykeykey值排序。

2020-08-20 23:10:26 296

原创 LC.529. 扫雷游戏(DFS)

LC.529. 扫雷游戏(DFS)思路:dfsdfsdfs即可,需要注意的是这里的相邻是888连通。class Solution {public: int sx,sy,vis[55][55],n,m; //int d[4][2]={0,1,0,-1,1,0,-1,0}; int d[8][2]={0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,-1,-1,1}; bool jg(int x,int y){ return x>=0&amp

2020-08-20 10:29:06 339

原创 AtCoder Beginner Contest 055(ABCD)

AtCoder Beginner Contest 055(ABCD)A - Restaurant思路:直接模拟。B - Training Camp思路:暴力求阶乘即可。C - Scc Puzzle思路:简单讨论特判。D - Menagerie思路:考虑前两个的情况,然后暴力递推特判即可。...

2020-08-20 09:03:45 386

原创 LC.647.回文子串(暴力&Manacher)

LC.647.回文子串(暴力&Manacher)思路:1.中心扩展法。时间复杂度:O(n2)O(n^2)O(n2)class Solution {public: int countSubstrings(string s) { int x=0,n=s.size(); for(int i=0;i<(n<<1)-1;i++){ int l=i>>1,r=(i>>1)+(i&1);//这样

2020-08-19 13:50:56 311

原创 AtCoder Beginner Contest 054(ABCD)

AtCoder Beginner Contest 054(ABCD)A - One Card Poker思路:特判即可。B - Template Matching思路:模拟注意下细节即可。C - One-stroke Path我的思路:暴力位运算枚举然后特判下。更简单的思路:dfsdfsdfs爆搜。void dfs(int u,int s){ if(s==n){ ans++;return; } vis[u]=1; for(int v:e[u]){ if(!vis[v]) d

2020-08-19 12:45:36 458

原创 牛妹游历城市(最短路)

牛妹游历城市(最短路)思路:以每个位建立虚点,然后跑最短路即可。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+40,M=2e4+5,inf=0x3f3f3f3f,mod=1e9+7;#define mst(a,b) memset(a,b,sizeof a)#define lx x<<1#define rx x<<1|1#define reg

2020-08-18 21:53:30 329

原创 Python的内置函数

前言:本文主要介绍Python的内置函数的一些基本的使用,可能会咕咕咕。dir(__builtins__)dir(\_\_builtins\_\_)dir(__builtins__)查看内置列表。0.help(BIF)0.help(BIF)0.help(BIF)BIF:built in functionsBIF:built\ in\ functionsBIF:built in functions,即内置函数。help(BIF)help(BIF)help(B

2020-08-18 16:37:06 420

原创 MMSet2(LCA&树的直径)

MMSet2(LCA&树的直径)思路:树的直径,结论:一棵树的任意点集SSS中距离最远的两个点(类似树的直径)必有一个点是深度最大的点,且树上所有点的到该节点距离最大值的最小值为:该点集的直径除以2向上取整。因为:所有点的f(u)f(u)f(u)都是与该点集直径d(x,y)d(x,y)d(x,y)到这两个点的距离取mxmxmx,所以要找到最小的值,只需要mx+12\dfrac{mx+1}{2}2mx+1​,这样肯定是最小的,其他的都会大于距离的一半。ep:mx=d(x,y)=5,ep:mx=d

2020-08-18 13:12:41 391

原创 三角形的外心公式

三角形的外心公式已知三角形的三顶点:(x1,y1),(x2,y2),(x3,y3)(x_1,y_1),(x_2,y_2),(x_3,y_3)(x1​,y1​),(x2​,y2​),(x3​,y3​)求外心。思路:利用外心到顶点距离相等,可列出两个等式,联立消元即可。令:d1=(x22+y22)−(x12+y12),d2=(x32+y32)−(x22+y22)d_1=(x_2^2+y_2^2)-(x_1^2+y_1^2),d_2=(x_3^2+y_3^2)-(x_2^2+y_2^2)d1​=(x22​+

2020-08-18 12:22:26 7820

原创 LC.109. 有序链表转换二叉搜索树

LC.109. 有序链表转换二叉搜索树思路:中序遍历。1.转有序数组分治思想。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(i

2020-08-18 10:36:01 332

原创 AtCoder Beginner Contest 053(ABCD)

AtCoder Beginner Contest 053(ABCD)A - ABC/ARC思路:特判。B - A to Z String思路:AAA取第一次,ZZZ取最后一次.C - X: Yet Another Die Game思路:显然用6,56,56,5来回是最优的,然后特判一下即可。D - Card Eater思路:观察一下可发现次数%2==1\%2==1%2==1贡献为111,然后对%2==0\%2==0%2==0的所有数进行计算,令%2==0\%2==0%2==0的数个数为cnt

2020-08-18 10:05:08 342

原创 AtCoder Beginner Contest 052(ABCD)

AtCoder Beginner Contest 052(ABCD)A - Two Rectangles思路:特判即可。B - Increment Decrement思路:按题意模拟。C - Factors of Factorial思路:质因数分解,然后乘法原理,每个质因数贡献为:cntpi+1cnt_{p_i}+1cntpi​​+1,注意最后不用减1,因为那个是因数111。D - Walk and Teleport思路:贪心肯定一直向右是最优,然后特判两两之间的距离选较小花费即可。.

2020-08-17 08:48:38 365

原创 LC.110.平衡二叉树

LC.110.平衡二叉树思路:dfsdfsdfs判断高度差即可。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:

2020-08-17 08:18:50 315

原创 Easyx中鼠标的使用。

Easyx中鼠标的使用。1.MOUSEMSG鼠标结构体.// 鼠标消息// 支持如下消息: WM_MOUSEMOVE 鼠标移动 WM_MOUSEWHEEL 鼠标滚轮拨动 WM_LBUTTONDOWN 左键按下 WM_LBUTTONUP 左键弹起 WM_LBUTTONDBLCLK 左键双击 WM_MBUTTONDOWN 中键按下 WM_MBUTTONUP 中键弹起 WM_MBUTTONDBLCLK 中键双击 WM_RBUTTONDOWN 右键按下

2020-08-15 12:47:16 17449 5

原创 AtCoder Beginner Contest 051(ABCD)

AtCoder Beginner Contest 051(ABCD)A - Haiku思路:直接模拟。B - Sum of Three Integers思路:暴力枚举。C - Back and Forth思路:按矩阵走一个来回后再围一层矩阵走即可。D - Candidates of No Shortest Paths思路:多源最短路判断路径,用spfaspfaspfa记录存在的路径然后用mmm减即可,标答的floydfloydfloyd对条边进行匹配也可。#include<bits/

2020-08-15 10:23:57 481

原创 Easyx的相关函数的使用

Easyx的相关函数的使用前言:本文更新一些EasyxEasyxEasyx相关函数的使用,便于学习,其中参考了一些EasyxEasyxEasyx文档。1.设置当前绘图背景色.voidsetbkcolor(COLORREF color);void\quad setbkcolor(COLORREF\ color);voidsetbkcolor(COLORREF color);注意:在设置背景色之后,并不会改变现有背景色,而是只改变背景色的值,之后再执行绘图语句,例如 outtext

2020-08-14 18:57:49 3491

原创 牛牛找子集(二分)

牛牛找子集(二分)思路:经典二分题,具体看代码。#define se second#define fi firstclass Solution {public: /** * 返回找到能够满足游戏胜利条件的子集,如果有多个子集满足条件,返回字典序最小的即可。 * @param n int整型 代表数字的数量 * @param k int整型 代表子集的大小 * @param s int整型vector 代表数字数组 * @return int

2020-08-14 11:40:58 340

原创 牛牛的01游戏(递归&模拟)

牛牛的01游戏(递归&模拟)思路:递归或者模拟。模拟的时候注意到一旦ans.back()=c=1ans.back()=c=1ans.back()=c=1时,这时ccc不产生贡献了。模拟方法string solve(string s) { string ans; for(char c:s){ bool f=true; while(!ans.empty()&&ans.back()==c){

2020-08-14 09:56:12 349

原创 AtCoder Beginner Contest 050(ABCD)

A - Addition and Subtraction Easy思路:依题意即可。B - Contest with Drinks Easy思路:简单模拟。C - Lining Up思路:乘法原理,用数组维护下每个数出现次数,注意特判下nnn为奇数,000只有一种,其他是两种.int n;cin>>n; int f=1,jg=n&1; ll ans=1; int cnt=0; for(int i=1;i<=n;i++){ int x; cin>&g

2020-08-14 09:26:11 419

空空如也

空空如也

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

TA关注的人

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