重要的小操作
可爱美少女
ccpc绵阳铜,icpc西安银,jscpc江苏金。
展开
-
牛客多校-Link with Arithmetic Progression-(三分总结)
就是给你一个数组,然后你每次可以让一个数a变为另一个数b,花费为(a-b)×(a-b)。然后问你让这个数组变成等差序列的最小花费。就是给你一个数组,每次你可以让一个数加1或者减1,然后把这个数组变成等差序列的最小花费。......原创 2022-08-15 19:38:06 · 284 阅读 · 0 评论 -
牛客多校-Journey-(建图distra+卡常优化)
其实这题,给你的路口,也没给你指定的方向,只是逆序的给你。所以要按边跑,也就是把边看成点,把这些边看成不同的点,进行hash。建图的时候就是枚举一个路口的四个路口,然后找出两个路口,对他们建图,如果是右转那么不花费。就是给你n个十字路口,每个路口有四个方向,按逆时针给你路口的标号,如果是0标号代表没有路口。然后你每次在路口进行右转是不花费的,然后前进,左转,倒头,都是花费1。先在你在A路口对着B路口的路上,让你走到在C路口对着D路口的路上。你面对的方向是不用的,A对B和B对A是不一样的。...原创 2022-07-26 16:24:19 · 178 阅读 · 0 评论 -
2019徐州-Ultimate Question of Life-(打表)
F题意:就是问你t次查询,每次查询一个数x,x>=0&&x<=200。问你x是否可以由三个数aaa+bbb+ccc组成,如果可以输出任意一个解,否则输出impossible。当然范围必须是abs(x)<=5000。思考:刚开始我还以为是找性质啥的,其实就是打表。也是第一次真正明白怎么打表,就是把所有答案输入到一个文档里面吗,再把这些答案,直接复制到要提交的代码中即可。值得注意的就是,要多多优化,要不然会跑很长时间,可能会跑不出来之类的。代码:打表代码:int原创 2022-03-11 16:36:55 · 126 阅读 · 0 评论 -
set中重载运算符,可以对插入的数做限制
struct cmp{ bool operator()(const int& A,const int& B)const{ if(abs(A-B)<=k) return false; //如果插入的数在set中有个数和他的距离<=k那么就不插入了 return A<B; //升序排序 }};set<int,cmp> s;signed main(){ IOS; cin>>m>>k; { string op;原创 2022-03-06 22:12:50 · 148 阅读 · 0 评论 -
vector在维护数据从小到大排序的情况下插入删去值
signed main(){ IOS; cin>>n; vector<int > v; while(n--) { int op,x; cin>>op>>x; if(op==1) //插入 { v.insert(lower_bound(v.begin(),v.end(),x),x); } if(op==2) //删除 { v.erase(lower_bound(v.begin(),v.end(),x));原创 2022-03-05 17:09:27 · 100 阅读 · 0 评论 -
判断4点是否为正方形
double Distance(int x1,int y1,int x2,int y2){ return sqrt(pow((x1-x2),2)+pow((y1-y2),2));}bool IsRightAngle(int x1,int y1,int x2,int y2,int x3,int y3){ if((x2-x1)*(x3-x1)+(y2-y1)*(y3-y1)==0) return true; return false;}bool IsSquare(int原创 2022-02-23 15:42:09 · 507 阅读 · 0 评论 -
判断线段是否相交和求平面四点的面积
struct Point{ db x; db y;}; bool isRectCross(Point p1,Point p2,Point q1,Point q2) { return min(p1.x,p2.x) <= max(q1.x,q2.x) && min(q1.x,q2.x) <= max(p1.x,p2.x) && min(p1.y,p2.y) <= max(q1.y,q2.y原创 2022-02-18 15:59:09 · 141 阅读 · 0 评论 -
指数取模(模数是质数)
在求指数的时候,若取的模数是指数,可以对指数%(p-1)。原创 2022-02-08 20:09:24 · 866 阅读 · 0 评论 -
判断点到线段的距离
sturct Point{ db x,db y;}db getdis2(Point a, Point b){ return (a.x - b.x)*(a.x - b.x) + (a.y - b.y)*(a.y - b.y);}db disMin(Point A, Point B,Point P) //线段端点A和B,外点P{ double r = ((P.x - A.x)*(B.x - A.x) + (P.y - A.y)*(B.y - A.y)) / getDis2(A,B); i原创 2022-02-08 20:05:22 · 952 阅读 · 0 评论 -
sort一段区间
如果数组内排序一段区间就是这样va[1] = 2,va[2] = 10,va[3] = 5,va[4] = 1,va[5] = 5;int l = 2,r = 4;sort(va+l,va+r+1);for(int i=1;i<=5;i++) cout<<va[i]<<" ";原创 2022-02-05 22:25:23 · 244 阅读 · 0 评论 -
牛客月赛28-迷宫-(状态dp+bitset)
I题意:就是给你一个n*m的矩阵,然后从1,1走到n,m,每次可以往下或者往右,并且走过的地方把权值加上,并且%1e4+7,问你又多少种不同的方式走到n,m的时候能获得多少种权值和。思考:这就是状态类型的dp了,但是你看这个数据范围卡的有点极限,如果直接定义dp为走到i,j的时候并且总和为k,这种状态是否可达。复杂度会到1e8。其实有时候还是可以过的,这个就可以直接转移就行了。当然还有一种操作就是bitset,bitset就是可以表示状态,和他有的值的个数。一些表示当前点可以到达哪些点的时候可以用他原创 2022-01-27 19:58:16 · 444 阅读 · 0 评论 -
数组的去重
cin>>n;for(int i=1;i<=n;i++) cin>>va[i];n = unique(va+1,va+1+n)-va-1;这里呢就是把va中间重复的去掉了比如原来2 3 3 1 7 7 5去重之后2 3 1 7 5注意此时的va[n+1]还是有值的,记得再初始化一下原创 2022-01-08 10:22:04 · 157 阅读 · 0 评论 -
最小权值环-(floyd求最小环)
最小环思考:上次那个傻逼机器人的D就是求个环,平时没用过,没想起来。代码:int T,n,m;int va[N];int dp[M][M];int dist[M][M];signed main(){ IOS; cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) if(i!=j) dist[i][j] = dp[i][j] = 1e12; } for(int i=1;i&l原创 2021-11-17 16:59:08 · 154 阅读 · 0 评论 -
2020江西省赛-(dp)
A题意:给你一个n行m列的数组,然后里面有0和1,就是从(1,1)走到(n,m),然后其中这些路径走过的0的个数>=a,走过的1的个数>=1,问有多少方案满足条件,对998244353取模。思考:第一眼我就感觉是之前noip的方格取数类的题目,然后想设置状态方程,注意到从开始走到结束,一共要走n+m-1个格子,这里完全可以只看路径中经过0的个数,因为总数不变,所以优化掉一维。但是卡到我的是当走到(i,j)这个点的时候这个方案数到底该怎么办。其实可以想到,当不知道咋去转移的时候,可以去闫式原创 2021-11-16 16:55:00 · 100 阅读 · 0 评论 -
空间四面体体积公式
int T,n,m;int va[N];db volume(db x1,db y1,db z1,db x2,db y2,db z2,db x3,db y3,db z3,db x4,db y4,db z4);signed main(){ IOS; double x1,y1,z1,x2,y2,z2,x3,y3,z3,x4,y4,z4; cin>>x1>>y1>>z1; cin>>x2>>y2>>z2;原创 2021-10-23 13:56:23 · 1224 阅读 · 0 评论 -
各种离散化
1.求逆序对和正序对的离散化for(int i=1;i<=n;i++){ cin>>vb[i]; vc[i] = {vb[i],i};}sort(vc+1,vc+1+n,cmp);for(int i=1;i<=n;i++) vd[vc[i].se] = i;bool cmp(PII a,PII b){ if(a.fi!=b.fi) return a.fi<b.fi; if(a.xh!=b.xh) return a.xh<b.xh; //逆序对是这样&原创 2021-10-19 17:14:38 · 91 阅读 · 0 评论 -
日常trick
原创 2021-09-09 10:04:15 · 99 阅读 · 0 评论