CodeForces-236B-求因子个数
CodeForces-236B-求因子个数 题目CodeForces-236B 题目大意先算出q=i*j*k,然后算q的因子的个数,最后把这个因子和加起来mod上一个数 记录下求解因子个数的办法 123456789101112131415161718192021222324252627282930313233343536373839404142434445/*2019-03-15 15:00:3592ms*/#include <cstdio>using namespace std;const int MAXN = 1e6 + 10;const int MOD = 1073741824;int arr[MAXN];void init(){ arr[1] = 1; for(int i = 2; i < MAXN; i++) //初始化,每一个数最少有两个因子,1和它本身 arr[i] = 2; //i*j得到一个数,代表这个数有因i和j,如果i,j相等,因子个数+1,否则+2 for(int i = 2; i*i < MAXN; i...
PTA-L2-025-分而治之-vector-思维
L2-025-分而治之 题目链接:L2-025 解析图问题!! 刚开始是想存储在vector里面,然后如果摧毁i的话,就把对应的vector<i>清空,还有查询别的vector,如果有i的话,则去掉,然后提交了一发,过了两个test,TLE了两个(很明显暴力超时,而且暴力不对) 附上TLE代码 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172/*2019/3/6 20:42:45 */#include <iostream>#include <vector>#include <cstring>#include <algorithm>using namespace std;int vis[11000];int main(){ ios::sync_with_stdio(false); ...
PTA-L2-028-vector-思维
L2-028 秀恩爱分得快 题目链接:L2-028 解析分别求出a,b与编号为i(i>0)的人的亲密度va[i],vb[i],还有va,vb的最大值MAXA,MAXB然后进行判断 如果MAXA对应的人是b而且MAXB对应的人是a,那么输出a,b即可 否则,分别按要求输出MAXA对应的人的编号,MAXB对应的人的编号 对于va,vb我们可以用个double数组存储,因为编号有正有负,所以得进行绝对值处理,所以得有另外一个数组g进行标记性别,同时需要注意到0这个点,因为会有+0,-0出现,所以得以字符串的形式输入 存储输入的数据,因为每行的个数都不一样,所以可以开辟一个较大的二维数组,或者用vector,这里选用vector 参考:https://blog.csdn.net/qq1013459920/article/details/86772096 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596...
chroot方法恢复grub信息
利用Live CD的另外一个方法解决grub rescue方法 开机缺引导日常进grub rescue,除了set set prefix的办法外,还可以利用Live CD进行update-grub命令 从Linux LIve CD启动后,能够通过update-grub chroot到grub分区来解决这个问题 步骤参考:https://askubuntu.com/questions/254491/failed-to-get-canonical-path-of-cow 评论区还有个更好的解决方案,如果这个不行,可以试试那一个 (/dev/sda1用你在grub上安装的任何分区替换下面。所有命令都是root。) 12345678910mkdir /mnt/chrootdirmount /dev/sda1 /mnt/chrootdir#分别用proc dev sys etc bin sbin var usr lib lib64 tmp替代$dir后执行命令mkdir /mnt/chrootdir/$dirmount --bind /$dir /mnt/chrootdir/$dirc...
L2-001紧急救援-dijkstra变形-记录路径
L2-001紧急救援 题目L2-001紧急救援 解析123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112/*2019/2/22 17:08:1056ms*/#include <bits/stdc++.h>using namespace std;const int MAXN = 1e3;const int INF = 0X3F3F3F3F;int edge[MAXN][MAXN]; int vis[MAXN] = {0}; int dis[MAXN];int num[MAXN]; //存每个点救援人员数量int path[MAXN]; //存储路径,...
图论之最小生成树
prim算法,kruskal算法,POJ1251入门题目 参考:https://blog.csdn.net/qq_40306845/article/details/81540626 模板题目poj1251—Jungle Roads 题意:给你n个点,右n-1条边,每个边都有一个权值,让你求出最小生成树 题目说明不含重复边 prime 先任意选择一条边(一般直接选择第一条),连接与其相连权值最小的点,然后两个点成为一个集合体。 找这个不在这个集合体里 但是与集合体相连的权值最小的点 与集合体相连,并把该点归入集合体。 重复上一条操作,直到集合体归入了所有的点 时间复杂度 记顶点数v,边数e 邻接矩阵:O(v2) 邻接表:O(elog2v) 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374#include <iost...
图论之最短路
Floyd,Dijkstra, Spfa Dijkstra:适用于权值为非负的图的单源最短路径,用斐波那契堆的复杂度O(E+VlgV) BellmanFord:适用于权值有负值的图的单源最短路径,并且能够检测负圈,复杂度O(VE) SPFA:适用于权值有负值,且没有负圈的图的单源最短路径,SPFA的最坏情况应该是O(VE). Floyd:每对节点之间的最短路径 (E为边个数,V为顶点个数) 其中N表示点数,M表示边数 Floyd 算法虽然总体上时间复杂度较高,但可以处理带负权边的图(但不能有负权回路),并且均摊到每一点对上,在所有的算法中还是属于比较优秀的算法。另外,floyd算法较小的编码复杂度也是一大优势,所以,如果要求的是所有点对间的最短路径,或者如果数据范围较小,则floyd算法比较合适。 Dijkstra算法最大的弊端就是他无法处理带有负权边以及负权回路的图,但是Dijkstra算法具有良好的可扩展性,扩展后可以适应很多问题。另外用堆优化的Dijkstra算法的时间复杂度可以达到O(M log N)。当边有负权,甚至存在负权回路时,需要使用Bellman-...
配上模拟的vector
天梯赛练习L1-049 天梯赛座位分配 L1-049 天梯赛座位分配题目题目描述 天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情。为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i 所学校有 M[i] 支队伍,每队 10 位参赛选手。令每校选手排成一列纵队,第 i+1 队的选手排在第 i 队选手之后。从第 1 所学校开始,各校的第 1 位队员顺次入座,然后是各校的第 2 位队员…… 以此类推。如果最后只剩下 1 所学校的队伍还没有分配座位,则需要安排他们的队员隔位就坐。本题就要求你编写程序,自动为各校生成队员的座位号,从 1 开始编号。 输入格式 输入在一行中给出参赛的高校数 N (不超过100的正整数);第二行给出 N 个不超过10的正整数,其中第 i 个数对应第 i 所高校的参赛队伍数,数字间以空格分隔。 输出格式 从第 1 所高校的第 1 支队伍开始,顺次输出队员的座位号。每队占一行,座位号间以 1 个空格分隔,行首尾不得有多余空格。另外,每所高校的第一行按“#X”输出该校的编号X,从 1 开始。 样例1 输入 1...
模拟除法
天梯赛练习L1-046. 整除光棍 L1-046 整除光棍题目123时间限制: 400 ms内存限制: 64 MB代码长度限制: 16 KB 题目描述 这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。 提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除x为止。但难点在于,s可能是个非常大的数 —— 比如,程序输入31,那么就输出3584229390681和15,因为31乘以3584229390681的结果是111111111111111,一共15个1。 输入格式 输入在一行中给出一个不以5结尾的正奇数x(<1000)。 输出格式 在一行中输出相应的最小的s和n,其间以1个空格分隔。 样例1 输入 131 输出 135842...
Arch安装配置笔记
整理一下,方便以后安装Arch Linux 刻录u盘略过。。。 检测是否是UEFI启动1ls /sys/firmware/efi/efivars 文件不存在说明不是以UEFI启动 连接WIFI1wifi-menu 然后可以检测连接是否成功 1ping -c 5 www.baidu.com 更新系统时间操作1timedatectl set-ntp true 查看服务状态1timedatectl status 原因 系统时间不对可能造成ssl连接失败导致安装出错 验证软件包签名,确定公钥过期没过期 https证书,也要验过期时间 分区检测分区情况1lsblk 分区1cfdisk /dev/sdx 格式化分区 格式化成ext4 1mkfs.ext4 /dev/sdX2 格式swap分区并激活 12mkswap /dev/sdX3swapon /dev/sdX3 格式化efi分区 1mkfs -t vfat /dev/sdX4 挂载分区 首先将根分区 挂载 到 /mnt 1mount /dev/sdX2 /mnt (多个分区的情况下可选) 挂载home分区 ...