算法竞赛进阶指南
黄佳俊、
to be or not to be!
热爱生活!
执着学习!
展开
-
线性筛求质数表
num[i] = 0 表示 i 不是质数。所有质数存在prim数组里,像prim前五个为2,3,5,7,11。table 函数就已经能求出所有质数了。#include<bits/stdc++.h>using namespace std;#define N 80010000#define ll long longint num[N], prim[5000060];int pn = 0;void table(){ memset(num, -1, sizeof(n.原创 2021-10-07 18:46:38 · 115 阅读 · 0 评论 -
递归实现组合型枚举(c语言)——递归,二叉树
递归实现组合型枚举(递归)从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。输入格式两个整数 n,m ,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行1个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如1 3 5 7排在1 3 6 8前面)。数据范围n>0 ,0≤m≤n ,n+(n−m)≤25输入样例5 3原创 2021-01-04 23:19:40 · 1502 阅读 · 1 评论 -
递归实现指数型枚举(c语言)——递归,二叉树
递归实现指数型枚举问题从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3已AC代码#include <原创 2021-01-04 23:07:34 · 451 阅读 · 1 评论 -
递归实现排列型枚举(c语言)——全排列
递归实现排列型枚举把 1~n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。输入一个整数n。输出按照从小到大的顺序输出所有方案,每行1个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。数据范围1≤n≤9输入样例:3输出样例1 2 31 3 22 1 32 3 13 1 23 2 1已AC代码#include<stdio.h>i原创 2021-01-04 22:49:43 · 4340 阅读 · 4 评论 -
起床困难综合征(C语言)——位运算
问题 E: 起床困难综合征时间限制:1Sec内存限制:128 MB题目描述21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳。作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争。通过研究相关文献,他找到了该病的发病原因:在深邃的太平洋海底中,出现了一条名为 drd 的巨龙,它掌握着睡眠之精髓,能随意延长大家的睡眠时间。正是由于 drd 的活动,起床困难综合症愈演愈烈,以惊人的速度在世界上传播。为了彻底消灭这种病,atm 决定...原创 2021-01-04 17:24:49 · 260 阅读 · 0 评论 -
最短Hamilton路径(c++)——(动态规划加位运算)
最短Hamilton路径时间限制:4Sec内存限制:128 MB题目描述给定一张 n(n≤20) 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。输入第一行一个整数n。接下来n行每行n个整数,其中第i行第j个整数表示点i到j的距离(一个不超过10^7的正整数,记为a[i,j])。对于任意的x,y,z,数据保证 a[x,x...原创 2021-01-04 15:31:21 · 757 阅读 · 1 评论 -
64位整数乘法(c语言)——大数取余
64位整数乘法时间限制:1Sec内存限制:128 MB题目描述:求a乘b对p取模的值,其中1≤a,b,p≤1018输入:输入3个long long型整数,a,b,p输出:输出a*b%p的值样例输入:250182048980811753413715569939057660133223633696258584样例输出19308689043391716已AC代码:#include<stdio.h>int...原创 2021-01-03 11:27:18 · 940 阅读 · 0 评论 -
a^b%p(C语言)——大数取余
a^b时间限制:1Sec内存限制:128 MB题目描述:求 a 的 b 次方对 p 取模的值,其中 0≤a,b≤10^9 , 0<p≤10^9输入:三个用空格隔开的整数a,b和p。输出:一个整数,表示a^b mod p的值。样例输入:2 3 9样例输出:8已AC代码:#include<stdio.h>#include<math.h>long long kuaiqiumi(long ...原创 2021-01-03 11:22:58 · 1041 阅读 · 0 评论 -
求和问题(C语言)
求和问题(C语言) 问题描述: 一个长度为n的序列,求其中连续m个数的和的最大值是多少? 输入: 第一行给出一个数字T,表示数组总数 (t<100) 每组数据的第一行有两个数字 n,m (0<m≤n≤1e5) 第二行有n个数字ai (0<ai<1e9) 输出: 对于每组数据,输出最大的连续m个数之和 样例输入: 2 5 2 2 5 4 1 6 8 3 3 5 8...原创 2021-01-01 12:02:29 · 2460 阅读 · 1 评论