ACM-小小知识点
文章平均质量分 61
凉哈哈
感谢关注,尽我所能
展开
-
费马小定理
费马小定理(Fermat's little theorem)是数论中的一个重要定理,在1636年提出,其内容为: 假如p是质数,且gcd(a,p)=1,那么 a(p-1)≡1(mod p),即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1。来自百度百科:点击打开链接原创 2017-07-30 12:54:30 · 269 阅读 · 0 评论 -
STL 中的集合 set 的用法
set 的基本用法:#include<iostream>#include<set>#include<stdio.h>#include<vector>using namespace std;int main(){ set<int> s; int n,a; scanf("%d",&n); ..原创 2018-03-08 19:46:50 · 231 阅读 · 0 评论 -
stdlib.h 下的函数(慢慢更新)
1 . itoa(int,char[],int); itoa(i,s,2);///这个是说将十进制的 i 转换成 2 进制的字符串存在 s 里面,然后printf 以%s输出就行了。参考题目链接:点击打开链接...原创 2018-03-16 11:33:37 · 1938 阅读 · 0 评论 -
排序之快速排序
因为上学期学了数据结构,了解了很多排序,但是一直用的排序是 STL 中的 sort 函数排序,在这里,我不做讲解,因为主要的是想整理一下快速排序的内容,昨天老师又给我们温习了一遍,所以想着抽个空整理一下,也是让自己加深一下印象吧!在讲解快速排序之前,我们一起来回忆一下我们最开始学的排序 —— 冒泡排序。冒泡排序算法的运作如下:(从后往前)1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2...原创 2018-03-22 20:37:07 · 152 阅读 · 0 评论 -
排序之堆排序
下面我们来看一个例子:对上述解释:我们先将给出的序列从上到下从左到右排成一颗二叉树,然后将该树调整成一颗大根堆,调整成大根堆的过程是从叶子节点开始的,就拿图 a 来说,5 是 0 的左孩子,但是孩子比父亲节点的元素大,所以我们要进行交换,当交换完之后,我们可以得到 8 的孩子节点变成 9 和 5 了,然后 9 比 8 大,进行交换,然后 6 的孩子节点变成了 9 和 7,9 比 6 大,进行交换,...原创 2018-03-22 22:14:24 · 183 阅读 · 0 评论 -
次小生成树详解
这阶段在练习图论专题,记得去年学姐讲过次小生成树,当时好像还有一个点比较迷,就是更新两点之间的最大的距离的时候,为啥一定要找已经做标记的点去更新,而且在更新的过程中也有诸多的疑问,然后刚才看了别人的代码,虽然没有注释(其实我非常不喜欢没有注释的代码,这对于入门的童鞋太不公平了),在把这个过程自己模拟弄懂的过程中,我突然感觉有些东西,尽管我们没有细学,但多少了解一些也是好的,至少可以在日后有一天你万...原创 2018-04-08 21:20:09 · 2460 阅读 · 10 评论 -
牛客网 2017年校招全国统一模拟笔试(第五场)编程题集合- 偶串
时间限制:1秒空间限制:32768K如果一个字符串由两个相同字符串连接而成,就称这个字符串是偶串。例如"xyzxyz"和"aaaaaa"是偶串,但是"ababab"和"xyzxy"却不是。牛牛现在给你一个只包含小写字母的偶串s,你可以从字符串s的末尾删除1和或者多个字符,保证删除之后的字符串还是一个偶串,牛牛想知道删除之后得到最长偶串长度是多少。 输入描述:输入包括一个字符串s,字符串长度leng...原创 2018-04-03 14:37:34 · 234 阅读 · 0 评论 -
2017年河南省ACM省赛 Problem A: 谍报分析
问题 A: 谍报分析时间限制: 1 Sec 内存限制: 128 MB题目描述“八一三”淞沪抗战爆发后,***几次准备去上海前线视察和指挥作战。但都因为宁沪之间的铁路和公路遭到了敌军的严密封锁,狂轰滥炸,一直未能成行。***特科组织,其主要任务是保卫***的安全,了解和掌握敌方的动向。经过一段时间的监听,谍报组获取了敌方若干份密报,经过分析,发现密文中频繁出现一些单词,情报人员试图从单词出现的次数...原创 2018-04-03 16:04:25 · 200 阅读 · 0 评论 -
L1-046. 整除光棍(巧妙的大数除法)
L1-046. 整除光棍题目链接:点击打开链接时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者翁恺这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然...原创 2018-03-28 20:54:58 · 393 阅读 · 0 评论 -
问题 1427: [蓝桥杯][历届试题]买不到的数目(两个数凑不出来的最大数)
问题 1427: [蓝桥杯][历届试题]买不到的数目时间限制: 1Sec 内存限制: 128MB 提交: 252 解决: 164题目描述小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。 小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买 10 颗糖。 你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是17。大...原创 2018-03-28 21:21:57 · 575 阅读 · 0 评论 -
牛客网 2018年北京信息科技大学第十届程序设计竞赛暨ACM选拔赛-precise math function
链接:https://www.nowcoder.com/acm/contest/118/B来源:牛客网题目链接:点击打开链接时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述喜爱ACM的PBY同学遇到了一道数学难题,已知底数n,请你帮他准确的计算出结果a = nπ(n的π次方),结果保留小数点后x位。输...原创 2018-05-06 15:06:17 · 303 阅读 · 0 评论 -
排列组合的公式
排列的定义及其计算公式:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同元素中取出m个元素的一个排列;从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号 A(n,m)表示。A(n,m)=n(n-1)(n-2)……(n-m+1)= n!/(n-m)! 此外规定0!=1(n!表示n(n-1)(n原创 2017-08-04 20:14:01 · 6074 阅读 · 0 评论 -
进制之间的转换
一、不同的进位制数转化为十进制数:按权展开相加十进制是权是10;二进制是权是2;十六进制是权是16;八进制是权是8;例:110011(二进制数)=1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+1*2^0=32+16+2+1=511507(八进制数)=1*8^3 + 5*8^2 + 0*8^1 + 7*8^0 = 8392AF5(十六进制数)=2*16^3 + A*16^2+ F*16...原创 2018-03-14 19:00:57 · 540 阅读 · 0 评论 -
STL中全排列的用法
计算序列全排列的函数:next_permutation(start,end),和prev_permutation(start,end)。这两个函数作用是一样的,区别就在于前者求的是当前排列的下一个排列,后一个求的是当前排列的上一个排列。都包含在头文件 #include<algorithm> 里面。假设我们想 求 1 到 n 的全排列代码如下:#include <stdio.h&g...原创 2018-02-11 20:42:06 · 249 阅读 · 0 评论 -
串的模式匹配-KMP详解
前两个星期在数据结构上学习了KMP,一听说要学KMP就感觉好难,因为上学期在没学数据结构之前实验室有个学姐讲过KMP算法,听的真是云里雾里,不知道next数组到底是干啥的,下去自己也没有学习,所以在前两个星期学到KMP时,很认真的学,终于在老师快讲完这一章的时候听明白了,但感觉不是太熟练,当时也没有时间写博客整理一下思路,所以这就导致了这周一分享KMP时,思想一点就通,但是具体步骤还是理解的不是很原创 2017-11-25 10:12:26 · 8922 阅读 · 0 评论 -
乘法逆元
关于乘法逆元的数学知识:乘法逆元,是指数学领域群G中任意一个元素a,都在G中有唯一的逆元a‘,具有性质a×a'=a'×a=e,其中e为该群的单位元。例如:4关于1模7的乘法逆元为多少?4X≡1 mod 7这个方程等价于求一个X和K,满足4X=7K+1其中X和K都是整数。若ax≡1 mod f, 则称a关于模f的乘法逆元为x。也可表示为ax≡1原创 2017-07-30 13:56:58 · 543 阅读 · 0 评论 -
位运算
有6种位运算: & 与运算 | 或运算 ^ 异或运算 ~ 非运算(求补) >> 右移运算 与运算(&) 双目运算。二个位都置位(等于1)时,结果等于1,其它的结果都等于0。原创 2017-07-29 13:15:36 · 277 阅读 · 0 评论 -
字符串的处理
一.字符串的操作1).strcpy(p, p1) 复制字符串函数名: strcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include #include int main(void) { char string[10]; char *str1 = "原创 2017-10-07 16:23:10 · 359 阅读 · 0 评论 -
sscanf 函数的详解
1.sscanf 的参数可以是一个或多个 {%[*] [width] [{h | I | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号}2.返回值:返回值 成功则返回参数数目,失败则返回-1。1. 常见用法。string = "china beijing 123"; ret = sscanf(string, "%s %s %d",原创 2017-10-15 15:10:55 · 1618 阅读 · 0 评论 -
sprintf 函数的详解
1.整数格式化输出如果要将数字 3915 保存到字符串str中/*假定字符串够长,以下都是为这样*/.sprintf(str,"%d",3915); // "3915" 这是最基本的输出sprintf(str,"%5d",3915); // " 3915" 右对齐,相当于C++中的制表符,如数字没有5位时左另用空格补满.sprintf(str,"%05d",3915); // "原创 2017-10-15 15:44:21 · 4200 阅读 · 0 评论 -
队,栈,优先队列的操作
队是先进先出,栈是先进后出,这一点大家应该清楚,明白这一点就可以正确的选择他们的运用了!/*使用标准库的队列*/ #include //头文件 queue q; //定义一个 int 型的队列 q.empty() //如果队列为空返回true,否则返回false q.size() //返回队列中元素的个数 q.po原创 2017-09-13 17:24:40 · 303 阅读 · 0 评论 -
优先队列的详解
在介绍优先队列实现之前,我们先简单了解一下概念:一.数据越小,优先级越高priority_queue<int, vector<int>, greater<int> >pq;priority_queue 对于基本类型的使用方法相对简单。他的模板声明带有三个参数:priority_queue<Type, Container, Functional>其中T...原创 2017-09-13 17:11:13 · 472 阅读 · 0 评论 -
并查集详解
并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中,其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运原创 2017-08-09 11:02:49 · 317 阅读 · 0 评论 -
快速幂
快速幂快速幂顾名思义,就是快速算某个数的多少次幂。其时间复杂度为 O(log?N), 与朴素的O(N)相比效率有了极大的提高。快速幂实现原理快速幂的原理比较好懂,就是说假如我们求的是3^11,其实比较通用的办法就是for(int i=1;i{a*=3;}时间复杂度为O(n), 那么我们有没有更快的办法呢? 有的~就是下面要说的快速幂。快速幂就是把原创 2017-07-29 17:34:03 · 537 阅读 · 0 评论 -
PN图的画法
不讲太复杂,两个概念和三条画图规则:必败点(P点) :前一个选手(Previous player)将取胜的位置称为必败点。必胜点(N点) :下一个选手(Next player)将取胜的位置称为必胜点。实际上就是按照规则画图;有以下三条规则:1. 每个图的末状态均为必败点P2. 所有能够一步到达必败点的都是必胜点N3. 所有能够一步到达必胜点的都是必败原创 2017-08-21 17:56:16 · 2371 阅读 · 0 评论 -
巴什博奕,威佐夫博奕,尼姆博奕,斐波那契博弈模板
1.巴什博奕只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,那么先取者再拿走m+1-k原创 2017-08-21 17:46:39 · 385 阅读 · 0 评论