
c++
kylinholmes
这个作者很懒,什么都没留下…
展开
-
记录 Shell坏了怎么办
记录 Shell坏了怎么办事情是这样的,在我上课的时候,因为fish好像坏了,我就直接删掉,然后因为之前设置的fish为默认shell,结果就根本打不开。然后我想到打开bash去修改。还好现在有GUI,服务器上出这种事,估计只有重装。故事开始打开/bin/bash输入命令source /etc/profile/bin/bash然后就进了bash,我想着,反正fish坏了,那就先删了吧。brew uninstall fish注意: 这里如果改了默认shell还没后面那么多事,可恶!!原创 2020-11-16 15:30:29 · 332 阅读 · 0 评论 -
蓝桥杯算法训练 素因子去重
蓝桥杯算法训练 素因子去重这个题不难,是我对书理解不透彻,把一个习题经验用错了地方,故记录成博客,告诫自己。错误之处:int pri[12] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31};在《算法进阶指南》里,约数那一部分提过一个引理:1~N中任何数的不同质因子都不会超过 10 个,且所有质因子的指数总和不超过30。证明:最小的11个质数的乘积2×3×5×7×11×13×19×23×29×31>2×1092\times3\times5\times7原创 2020-10-06 22:36:34 · 208 阅读 · 2 评论 -
货仓选址问题
货仓选址题目描述在一条数轴上有N家商店,它们的坐标分别为 A[1]~A[N]。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行一个整数N,第二行N个整数A[1]~A[N]。输出格式一个整数,表示距离之和的最小值。样例input46 2 9 1output12数据范围与约定对于100%的数据: N<=100000, A[i]<=1000000题目很简单原创 2020-09-22 14:29:39 · 1245 阅读 · 0 评论 -
C++ STL
C++ STL常用的 STL 头文件如下文章目录C++ STLvectorqueuedeuqesetmapbitsetalgorithmvector简单来说vector是一个动态数组,数组长度可变。和数组一样支持随机访问 [] ,对比数组增加了一些函数:size/emptysize函数会返回vector的元素个数,empty会返回一个bool类型,表示vector是否为空*所有的STL容器都支持这两个方法,含义也相同,后面不再重复给出clear清空vector数组begin/原创 2020-08-14 14:05:42 · 150 阅读 · 0 评论 -
博弈论的算法总结
常见博弈算法模型总结转载自大佬博客文章目录常见博弈算法模型总结博弈:常见的博弈:巴什博弈:威佐夫博弈:尼姆博弈(Nimm Game):博弈:博弈论又被称为对策论(Game Theory),既是现代数学的一个新分支,也是运筹学的一个重要学科。博弈,具体的例子就是下棋,双方都考虑最有利于自已的步骤,但是最终必有一方输,一方赢。博弈的策略:参与者在行动之前所准备好的一套完整的行动方案,就是想好下完这步棋,对方会如何下,以及接下来该如何下,最终得出结果。常见的博弈:博弈:合作博弈和非合作博弈转载 2020-08-13 15:23:54 · 10950 阅读 · 1 评论 -
Who is better?
Who is better?题目看懂了就很简单,首先是给你a和b,看能不能找到这样一个n满足上述关系。用中国剩余定理来求。如果找不到就是"Tankernb!"找到的话就用 斐波那契博弈论 的结论。石头数 为 斐波那契数的话 先手 必败。思路是先算n,然后计算斐波那契数。#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include原创 2020-08-05 17:18:49 · 204 阅读 · 2 评论 -
C++递归过程中出现的问题
C++递归过程中出现的问题文章目录C++递归过程中出现的问题提出问题发现问题:作出假设解决方法总结提出问题一个蛮有意思的问题,朋友问我的。先看遇到问题的代码#include<iostream>using namespace std;int a[5] = {1,2,3,4,5};int f(int i){ if(i < 5) return a[i]+f(i+1);}int main(){ cout << f(0) << endl;原创 2020-07-03 00:21:24 · 872 阅读 · 0 评论 -
来看排列组合嘛
组合数的逆元写法看别人的没看明白,顺着自己思路写了一下其实也没什么好讲的,就是公式的写法,打表了 n!,还有对应的逆元inv。组合的公式: Cnm=n!m!(n−m)!C^m_n = \frac{n!}{ m!(n-m)!}Cnm=m!(n−m)!n!之后把分母换成对应的inv就行了问题: 给定n,m 求CnmC^m_nCnm#include <iostream>#define ll long longusing namespace std;const int N = 1原创 2020-06-28 01:37:17 · 206 阅读 · 0 评论 -
算法竞赛进阶指南练习 0x18
POJ 2823 Sliding Window这个题大方向想到了,但是没想到要删除队尾的元素来维护单调性。后来测试数据的时候发现之前的写法有问题,想了一圈不知道应该改哪里,后来还是去搜了一下别人的思路,发现需要维护队尾的单调性。最后借鉴的标答的代码,写的真的简洁,比其他人的都短好多。除了单调队列,这个是不是还可以用区间dp,线段树。但我觉得可能会超时吧。#include <iostream>#include <cstring>#include <algorithm原创 2020-06-23 20:52:25 · 309 阅读 · 0 评论 -
算法竞赛进阶指南练习 0x08
The Pilots Brothers’ refrigerator占卜DIY思路很简单,模拟一遍就行,但是我自己写的太丑了,看懂别人的以后重写了一遍,真的妙啊,人都升华了。#include <iostream>#include <cstring>#include <iostream>#include <cstring>#include <algorithm>#include <cmath>using namespace原创 2020-06-14 19:01:04 · 580 阅读 · 0 评论 -
CodeForces EDU 89 div.2 D
CodeForces EDU 89 div.2 D这个题其实不难,想一下就容易想到了,但是我没想到????巨佬的原文const int N = 5e5+5;const int M = 1e7+7;int n;int a[N],b[N],c[N],L=0;int v[M];void prime(int n){ for(int i=2;i<=n;i++){ if(v[i]==1)continue; for(int j=i*2;j<=n;j+=i原创 2020-06-12 17:35:43 · 214 阅读 · 0 评论 -
CF Round648 div2 C Rotation Matching
CF Round648 div2 C代码太妙了,我直接复制了别人的来因为转载要链接,就发原创了,但是代码不是我写的ans是第几圈,ji很好看出来是位置#include <cstdio>#include <iostream>#include <iomanip>#include <string>#include <cstdlib>#include <cstring>#include <queue>#incl原创 2020-06-08 00:03:10 · 267 阅读 · 0 评论 -
高精度算法
高精度算法高精度加法求a + b#include <iostream>#include <cstring>using namespace std;const int N = 1e6+6;int a[N],b[N],c[N];char s[N];int L;int la,lb;void add(int *a,int *b){ int t; for(int i=0;i<la||i<lb;i++){ t = a[i]原创 2020-06-05 08:43:17 · 298 阅读 · 0 评论 -
C++从入门到放弃保姆级教程 -- 指针
C++从入门到放弃保姆级教程 – 指针指针初步介绍直接说指针是什么,就是一个变量,储存的是内存的地址。我们的变量存储在内存里,是有一个位置的,这个位置是多少,就是内存地址。上代码,应该很好理解int main(){ int a = 1; int* b = &a; // 声明一个 int类型 地址变量; & 是取地址符,得到a的地址,赋值给b cout << a << endl; cout << &a << e原创 2020-05-14 15:25:22 · 147 阅读 · 0 评论 -
树桩数组模板
树桩数组模板#define lowbit(x) (x)&(-x) //查找父节点const int N = 1e6+6;int bit[N],n;// 减法的时候就 +(-x),单点修改void add(int i,int x){ while(i <= n){ bit[i]+=x; i=lowbit(i); }}// sum是1~i的和// sum[l,r] = sum(r) - sum(l-1)int sum(int i){ int s = 0; while原创 2020-05-13 01:45:44 · 275 阅读 · 2 评论 -
排序模板
排序模板快排void q_sort(int q[],int l,int r){ if(l >= r) return; int i = l - 1,j = r + 1,x = q[(l + r) >> 1]; while(i<j){ do i++; while(q[i]<x); do j++ ;while(q[j]>x); if(i < j) swap(q[i],q[j]); }原创 2020-05-10 08:22:14 · 134 阅读 · 0 评论 -
POJ 2105 IP Address (水题)
POJ 2105 IP Address (水题)IP AddressTime Limit: 1000MSMemory Limit: 30000KDescriptionSuppose you are reading byte streams from any device, representing IP addresses. Your task is to convert ...原创 2020-04-24 21:30:29 · 305 阅读 · 0 评论 -
POJ 2102 Honey and Milk Land (水题)
POJ 2102 Honey and Milk Land (水题)Honey and Milk LandTime Limit: 1000MSMemory Limit: 64000KDescriptionBad rumors are spreading over the Land of Honey and Milk. Informed people say that the ...原创 2020-04-24 18:45:18 · 216 阅读 · 0 评论 -
POJ 2100 Graveyard Design (尺取法)
Graveyard DesignTime Limit: 10000MS Memory Limit: 64000K Total Submissions: 12120 Accepted: 3055 Case Time Limit: 2000MS DescriptionKing George has recently decided that he w...原创 2020-04-24 17:48:48 · 194 阅读 · 1 评论 -
常见数据类型的范围
常见数据类型的范围转载自其他人的博客unsigned int 0~4294967295int -2147483648~2147483647unsigned long 0~4294967295long -2147483648~2147483647long long的最大值:9223372036854775807long long的最小值:-922337203685477...转载 2020-04-24 16:29:16 · 253 阅读 · 0 评论 -
POJ 2081 WaterProblem(水题)
POJ2081:Recaman’s SequenceDescriptionThe Recaman’s sequence is defined by a0 = 0 ; for m > 0, am = am−1 − m if the rsulting am is positive and not already in the sequence, otherwise am = am−1 + m...原创 2020-04-20 16:35:12 · 222 阅读 · 0 评论 -
POJ 2070 Water Problem(水题)
POJ 2070 Water Problem(水题)题意是给你一组数据,在已知的三个人里找到满足条件的输出出来,中间加空格。有多个就输出多个。条件就是,看数据嘛,满足第一个人那个关系的就是了。//// main.cpp// Problem//// Copyright © 2020 Kylin. All rights reserved.#include <iostrea...原创 2020-04-19 18:14:18 · 182 阅读 · 0 评论 -
凸包 Graham扫描算法 模板
凸包 Graham扫描算法 模板struct P{ int x,y; // ? 构造函数,dot,重载 - 运算符}bool cmp(const P& p,const P& q){ if(p.x != q.x) return p.x < q.x; return p.y < q.y;}vector<P> convex_hull(P * ps...原创 2020-04-19 17:41:14 · 189 阅读 · 0 评论 -
POJ 2063 投资 (完全背包水题)
POJ 2063 投资 (完全背包水题)DescriptionJohn never knew he had a grand-uncle, until he received the notary’s letter. He learned that his late grand-uncle had gathered a lot of money, somewhere in South-Ameri...原创 2020-04-18 23:27:43 · 299 阅读 · 0 评论 -
最小生成树 Kruskal Prim 模板
最小生成树 Kruskal Prim 模板Kruskal:const int N = 5e6+5;int n,m,f[N];int ans;struct rec{int x,y,z;}edge[N];bool operator < (rec a,rec b){return a.z < b.z;}//并查集int find(int x){ return x == p[...原创 2020-04-18 19:14:48 · 171 阅读 · 0 评论 -
POJ 2069 Super Start (最小球覆盖,退火算法)
POJ 2069 Super Start (最小球覆盖,退火算法)退火法主要参考这篇文章DescriptionDuring a voyage of the starship Hakodate-maru (see Problem 1406), researchers found strange synchronized movements of stars. Having heard the...原创 2020-04-18 18:11:36 · 283 阅读 · 1 评论 -
Eratosthenes 埃式素数筛 模板
Eratosthenes 埃式素数筛埃式素数筛的思路是这样的: 任何整数 x 的倍数 2x,3x…一定都不是素数。我们从小到大开始扫描,每扫描到一个数就标记为合数。当扫描到一个数时,没有被标记为合数,那么说明在2 ~ x - 1之间没有x的因数,所以 x 就是质数。const int N = 1e5+6;bool v[N];void prime(int n){ memset...原创 2020-04-17 20:00:28 · 184 阅读 · 0 评论 -
POJ 2084 连接游戏 (卡特兰数)
POJ 2084 连接游戏 (卡特兰数)DescriptionThis is a small but ancient game. You are supposed to write down the numbers 1, 2, 3, . . . , 2n - 1, 2n consecutively in clockwise order on the ground to form a circl...原创 2020-04-17 17:16:52 · 433 阅读 · 0 评论 -
数据结构 — 栈 和 队列
数据结构 — 栈 和 队列 最简单易懂的教程栈栈就好比是家里的盘子,堆起来的那种。每次拿盘子都是拿最上面的,放也放在最上面。再对于数组来说,就是每次只能把数据放到最后,取出数据也只能取出最后的。先入后出,后入先出这里直接写代码吧,下面的写法适用于程序设计竞赛const int N = 1e5 + 5;int a[N],m;void push(int num){ // 入栈 ...原创 2020-04-17 10:55:39 · 188 阅读 · 0 评论 -
p1004方格取数
p1004方格取数题目描述设有 N×N 的方格图 (N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 0。如下图所示(见样例):A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 4 0 0 ...原创 2020-04-16 15:46:40 · 216 阅读 · 0 评论 -
C++从入门到放弃保姆级教程 — 函数
C++从入门到放弃保姆级教程 — 函数函数是什么?函数就好比一个黑盒,你用了以后会有神奇的事情发生。这里举常用的几个函数: sort(a, a+n); //sort 是对数组 a ~ a+n 排序,默认升序 c = max(a, b); // max 是返回a,b里较大的值,这个式子就是把较大的值赋值给c c = min(a, b); // min 同理返回a, b里较小...原创 2020-04-15 22:01:04 · 236 阅读 · 0 评论 -
C++从入门到放弃保姆级教程 — 数组
C++从入门到放弃保姆级教程 — 数组先提出一个问题,我们要输入一个整数,应该先声明一个变量吧。那如果我们要100呢?声明100次?写一百个?那不是很麻烦。所以解决办法是数组,声明是数组呢,就是一堆相同类型的数。这样声明:int a[100];int b[x] = {1,2,3,4,5,6,7,8,9,10};//这两种都是可以的,区别在于,b手动地给每个值赋值,并且x可以不写,如果...原创 2020-04-15 16:18:53 · 217 阅读 · 0 评论 -
背包问题 - 01背包 、完全背包 、多重背包、还有混合背包
背包问题主要讲三个背包:01 背包,完全背包,多重背包。01 背包01背包的意思是选一个或者不选。朴素版:#include <iostream>#include <algorithm>using namespace std;const int N = 1111;int v[N]; //v[i]表示i个物品的价值int w[N]; //w[i]表示第...原创 2020-04-15 03:07:05 · 290 阅读 · 1 评论 -
C++从入门到放弃保姆级教程 — 流程控制
C++从入门到放弃保姆级教程什么是流程呢?我们的看代码,他是顺序执行的,从上往下依次执行。程控制有两种:一种是分支,一种是循环。我们先看一个代码int main(){ // 是这样的一个顺序 int a; // | cin >> a; //数据读入 | a += 1; // | cout << a <<...原创 2020-04-15 00:35:54 · 399 阅读 · 9 评论 -
C++ 从入门到放弃的保姆级教程 — 数据介绍
C++ 从入门到放弃的保姆级教程 — 数据电脑不像我们的世界没有边界,数据是有范围的,每种数据都有精度数据类型意义举例int整数1、2、3float小数1.1、2.2、3.3double精度更高的小数9.99999999999char字符a、b、cbool逻辑真、假bool只有两个,真、假我们试着输出一下int mai...原创 2020-04-14 02:08:10 · 279 阅读 · 0 评论 -
C++从入门到放弃保姆级教程
C++从入门到放弃 保姆级 教程本文旨在帮助需要学习c++的人快速入门,对于c++内部细节不会进行过多介绍。首先是推荐IDE(集成开发环境,Integrated Development Environment )不懂也无所谓,会用就行。默认新手是Windows系统,所以推荐:dev-c++适合入门使用,代码提示较少,可以帮助记忆代码什么的。下载地址c-free适合入门使用,代码提...原创 2020-04-14 02:05:53 · 429 阅读 · 0 评论