ACM
ACM比赛学习记录
jigsaw_zyx
人生总是来来往往,可凭心而行,可随心而动,千万别等来日方长
展开
-
关于素数和素数筛常用的方法
文章目录判断一个数是不是素数寻找一个合数的所有质因子素数筛线性素数筛判断一个数是不是素数bool isp(int x){ for(int i=2;i*i<=x;i++) if(x%i==0) return 0; return 1;}寻找一个合数的所有质因子if(isp(j)){//如果是合数 int x=j; for(int i=2;i*i<=j;i++){ int k=0原创 2022-02-09 22:54:38 · 336 阅读 · 4 评论 -
全员long long||int转换成long long型
今天看大佬用了个神奇的操作,全员int 变long long,一不留神就错了开头定义:#define int long long注意,但是这样int main就无法编译成功,只需要讲它换成signed main就好原创 2021-08-07 17:23:12 · 913 阅读 · 2 评论 -
ACM造数据(超级保姆级教学)
文章目录创建文件造数据输出数据创建文件首先,找到你想放数据的位置,创建一个新的文件夹,命名为ACM。首先,打开你的编译器,我这里用的是codeblocks,你们用DEV也可以,点击New file选定Project然后选中继续我这里命名为hhh,位置是D:\CodeSpace\C然后获得进程:造数据我们把这个代码复制过去:#include <bits/stdc++.h>using namespace std;int random(int l,int r){原创 2021-08-04 00:37:34 · 3054 阅读 · 3 评论 -
字符串输入输出
1.输入含空格字符串(1)%c可以输入所有东西注:包括回车<1>. getchar()可以吞噬回车<2>. cin不能读入空格int n;cin>>n;char mp[109][109];getchar();for(int i=0;i<n;i++){for(int j=0;j<n;j++){scanf("%c",&mp[i][j]);}getchar();}输入小妙招:如果要只读入一个字符,但是其中会有空格可以char原创 2021-06-02 21:39:42 · 117 阅读 · 0 评论 -
欧几里得算法扩展
斐蜀定理:1.若a,b是整数,且记d=gcd(a,b),那么对于任意整数x,y,总有ax+by是d的倍数。(显然成立)2.对于给定整数,ax+by=c有整数解的充分必要条件是c是gcd(a,b)的倍数。证明:a * x+b * y=gcd(a,b)b * x1+a%b * y1=gcd(a,b)b * x1+(a-a/b * b) * y1=gcd(a,b)b * x1+a * y1-a/b * b * y1=gcd(a,b)a * y1+b * (x1-a/b * y1)x=y1,y=x原创 2021-05-12 23:23:25 · 101 阅读 · 0 评论 -
位运算
1.补码在总结按位运算前,有必要先介绍下补码的知识,我们知道当将一个十进制正整数转换为二进制数的时候,只需要通过除2取余的方法即可,但是怎么将一个十进制的负整数转换为二进制数呢?其实,负数是以补码的形式表示,其转换方式,简单的一句话就是:先按正数转换,然后取反加1。要将十进制的-10用二进制表示,先将10用二进制表示:0000 0000 0000 1010取反:1111 1111 1111 0101加1:1111 1111 1111 0110所以,-10的二进制表示就是:1111 1111原创 2021-04-08 20:02:43 · 455 阅读 · 0 评论 -
黑龙江农垦科技职业学院喜迎寒假多校联赛2(快乐ak场):A题:快速读入+双指针+三目运算符
链接:https://ac.nowcoder.com/acm/contest/11471/A来源:牛客网题目描述有一段数组n 从中截取和为k的一部分 最长可以截取多长?(如果截取不到正好为k的情况下输出-1)注意:出题人:出个数组截取吧;验题人:数据太弱了加强一下;出题人:陷入沉思,OK本题因为验题人吐槽,数据太弱所以加强了一点点,一点点…因为数据比较多 请使用你认为最快的读取方式 最省内存的运算方法。反正C++标程 500ms 256mb 内跑过去了。输入描述:第一行输入两个整数 n,k原创 2021-01-25 13:58:29 · 285 阅读 · 0 评论 -
今日份排序
今日总结自己学过的各大排序,其实一般用到的就只有sort 罢了选择排序冒泡排序插入排序快速排序原创 2021-01-10 15:44:24 · 129 阅读 · 0 评论 -
藏在全排序后的dfs
今天组里某强跟我说全排序,说得神神乎乎,我好奇的百度,好家伙,看不懂,看了视频,嗯。。。真不错。下面,来,看!来,偷袭!全排序原理:递归理解思路:确定一个数,再确定下一个数,再确定下一个数,每一个数不能重复出现总结:在递归完一个数后,要把b[i]清零,不然之后都等于一,只能输出一个数。至于为什么b[i]=0要放在那里,可以把它前面的函数想象展开一个一个条件判断,模拟一下就明白...原创 2020-11-26 23:14:46 · 107 阅读 · 0 评论 -
二分查找
今天新学了二分查找,来写个博客总结,以免自己可怜的记忆又忘了。1.二分查找值功能:在一组数里找到想找到的值是第几个条件:要排序原理:把一组数二分,判断取前取后,再二分,再二分。模板一:模板二:来源链接:https来源链接:https://www.acwing.com/blog/content/31/总结:这里最大的坑,是加一或者减一那里,没有的话,会陷入死循环,比如当在1和2区间时,我们要取2指向的值,会一直陷入死循环。l=1<r=2一直执行。可以自己用草稿本模拟一遍就明原创 2020-11-26 23:02:21 · 115 阅读 · 0 评论 -
进制转换
十六进制对照表(源于百度1.转十进制*****设我们要将n进制转换为十进制,首先我们从n进制的右边为第一位数开始,第一位乘是n的0次方,第二位是n的1次方,依次递增下去,把最后的结果相加的值就是十进制的值了。2.十进制转其他取余法注意取得余数的顺序最后输出要倒过来3.二进制转八和十六进制八进制:去三合一,拼接六进制:取四合一,拼接十六、八进制转二进制取余,然后拼接。4。八进制转十六进制、十六进制转八进制将八进制转为二进制,然后再转十六进制。...原创 2020-11-21 08:24:06 · 167 阅读 · 0 评论 -
C语言合法字符:输入含空格字符串,还有航电要注意头文件
这几天组里开始催学字符串输入了,我早就把字符串输入学辽,信心满满地打开航电看一眼题,嗨,简单。打了一个小时后。。。。我还是菜狗。下面是菜狗输入含空格字符串的学习历程总结,还有航电ce原因。此题是航电2024,题目回看。输入含空格字符串:1.用gets()输入含空格字符串2.用scanf("%[ ^\n ]", )输入这个就是"^"是非的意思,遇到\n结束。也可以把\n换成其他的,比如换成a,字符串里就遇到a停止输入。然而,就这样改一下输入结果还是不对,因为它居然把回车也算成了字符原创 2020-11-19 14:56:58 · 468 阅读 · 0 评论 -
ACM输入大总结
千里之行,始于输入,一下是输入大法总结,今后ACM输入还要多多指教呐,遇到来偷袭的输入就放这儿啦1.while循环语句输入未知数据。(有判断)也可以加判断:2.while循环语句输入(无判断)3.吞噬回车大法能输入如abc加回车4.对于输入数据过大的巧输入数据过大时,用int 每个数字占4个字节,但是如果用字符输入每个数字只会占1个字节,大大节省了空间。以字符输入就要考虑如何以数字输出,那到底如何输出呢?在ASCII对照表我们发现,每个数字字符减去0字符就等于它自己代表的数字,所以原创 2020-11-13 15:26:14 · 309 阅读 · 0 评论