自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 收藏
  • 关注

原创 组合数学笔记

1111

2022-07-11 16:07:42 264

原创 数论练习题

数论练习

2022-07-04 10:21:22 635 1

原创 计算几何笔记

试除法判定质数bool is_prime(int x){ if (x < 2) return false; for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) return false; return true;}试除法分解质因数 void divide(int x){ for (int i = 2; i <= x / i; i ++ ) .

2022-04-27 18:16:57 239

原创 Game of Hyper Knights LightOJ - 1315

Game of Hyper KnightsLightOJ - 1315六个方向搜索不能打表,打表很麻烦,记录不了旧状态#include <bits/stdc++.h>#define int long longusing namespace std;const int maxn = 1010;int n, k, a[maxn];int dire[6][2] = {{-1,-2},{1,-2},{-2,-1},{-2,1},{-1,-3},{-3,-1}};int sg

2021-12-05 16:35:17 205 2

原创 数论公式笔记

void init(){//组合数递推,第一类斯特林数 c[0][0]=1; stir[0][0]=1; for(int i=1;i<=2000;i++) { c[i][0]=c[i][i]=1; stir[i][0]=0; stir[i][i]=1; for(int j=1;j<i;j++) { c[i][j] = (c[i-1][j] + c[i-1][.

2021-11-03 16:44:30 275 1

原创 高斯消元异或模板

int equ, var;///equ个方程 var个变量int a[maxn][maxn];///增广矩阵int x[maxn];///解集int x_i[maxn];bool free_x[maxn];///判断是不是自由变元int free_num;///自由变元的个数int Gauss(){ int Max_r;///当前列绝对值最大的存在的行 ///col:处理当前的列 int row,col = 0; int free_x_num; int.

2021-10-18 20:00:39 143

原创 A - Strange Way to Express Integers

A - Strange Way to Express IntegersSample Input28 711 9Sample Output31#include<iostream>using namespace std;typedef long long ll;ll exgcd(ll a,ll b,ll &x,ll &y){ if(b==0) { x=1;y=0; return a; } ll d = exgcd(b,a%b,y,x)

2021-07-01 15:28:24 115

原创 B 子序列

牛客IOI周赛26-普及组:B 子序列链接:https://ac.nowcoder.com/acm/contest/11233/B给出一个仅包含 a,b 的字符串 A。在 A 中间任意位置(包括开头结尾)插入一个字符,最大化 aab 作为子序列(可以不连续)在 A 中出现的次数。输入描述:第一行一个仅包含 a,b 的字符串 A。输出描述:输出一个整数,为插入一个字符后,aab 作为子序列在 A 中出现的次数的最大值。输入abababa输出...

2021-06-06 12:40:46 443 2

原创 数论笔记`

//快速幂算法递归算法long long fastpow2(long long a,int n){ if(n==1) return a; long long tem = fastpow(a,n/2); if(n%2==1) return tem * tem * a; else return tem * tem;}//快速幂非递归版本long long fastpow2(long long a,int n){ long long.

2021-05-31 19:32:49 395

原创 HDU - 6913 Chord

ChordProblem DescriptionLvat is studying music. In this week, he has to figure out what chords are. First of all, he needs to learn the two kinds of most basic chords - the major triad chord and the minor triad chord.In music theory, every 12 success

2021-05-28 12:46:34 291

原创  HDU 6542  SSY and JLBD

# HDU 6542 SSY and JLBD> Mahjong is a board game with a long history. But Mahjong has different rules in different city. A deck of mahjong consists of 136 cards. It contains 1-9 card in three suits,and Seven kinds of word card("dong","nan","xi","bei..

2021-05-27 08:41:23 219

原创 D - Wave

D - Wave目录D - WaveInputOutputSample InputSample OutputAC代码Avin is studying series. A series is called "wave" if the following conditions are satisfied:1) It contains at least two elements;2) All elements at odd positions are the same;3.

2021-05-23 11:42:38 273 1

原创 kotori和气球

链接:https://ac.nowcoder.com/acm/challenge/terminal来源:牛客网kotori最近迷上了摆气球的游戏。她一共有n种气球,每种气球有无数个。她要拿出若干个气球摆成一排。但是,由于气球被施放了魔法,同样种类的气球如果相邻会发生爆炸,因此若两个相邻的气球种类相同被视为不合法的。kotori想知道,摆成一排m个一共有多少种不同的方案?由于该数可能过大,只需要输出其对109取模的结果。输入描述:输入仅有一行,为两个整数n和m(1≤n,m≤100)输出描述:

2021-05-15 16:26:27 295

原创 牛客:日期排序

链接:https://ac.nowcoder.com/acm/challenge/terminal来源:牛客网题目描述有一些日期,日期格式为“AA/BB/CCCC”。编程将日期从小到大排列。输入描述:输入一个整数N,代表输入日期的个数。接下来N行,输入N个格式为“AA/BB/CCCC”的日期输出描述:输出排序后的日期,一个日期占一行示例1输入复制610/22/200302/12/200415/12/199912/31/200510/21/200311/30/2005输出

2021-05-15 16:25:41 1092

原创 Malvika is peculiar about color of balloons

Little Malvika is very peculiar about colors. On her birthday, her mom wanted to buy balloons for decorating the house. So she asked her about her color preferences. The sophisticated little person that Malvika is, she likes only two colors — amber and bra

2021-05-15 16:23:58 237

原创 UVA 11401 Triangle Counting(详解)

Triangle Counting分析一下以八为例子1 2 3 4 5 6 7 8以(7,8)为边,就有6 7 8, 5 7 8, 4 7 8 ,3 7 8 ,2 7 8 五种情况;以(6,8)为边,就有5 6 8, 4 6 8, 3 6 8 三种情况;以(5,8)为边,就有4 5 8 一种情况;这时候我们把8算完了,也就是5+3+1种情况然后算最大边为7的情况4+2种情况以此类推就可以知道最大边为n时有(n / 2 - 1)*(n -1 ) / 2种情况#include<bi

2021-05-09 20:34:16 229

原创 Magical Sticks 棍子拼接

Magical Sticks 棍子拼接A penguin Rocher has n sticks. He has exactly one stick with length i for all 1≤i≤n. He can connect some sticks. If he connects two sticks that have lengths a and b, he gets one stick with length a+b. Twosticks, that were used in the o

2021-05-09 20:26:48 246

原创 L2-1 包装机 (25 分)(STL43行代码)

L2-1 包装机 (25 分)一种自动包装机的结构如图 1 所示。首先机器中有 N条轨道,放置了一些物品。轨道下面有一个筐。当某条轨道的按钮被按下时,活塞向左推动,将轨道尽头的一件物品推落筐中。当 0号按钮被按下时,机械手将抓取筐顶部的一件物品,放到流水线上。一种特殊情况是,因为筐的容量是有限的,当筐已经满了,但仍然有某条轨道的按钮被按下时,系统应强制启动 0号键,先从筐里抓出一件物品,再将对应轨道的物品推落。此外,如果轨道已经空了,再按对应的按钮不会发生任何事;同样的,如果筐是空的,按 0

2021-04-26 17:03:11 2896 1

原创 银行业务队列简单模拟 (25 分)c语言c++

7-2 银行业务队列简单模拟 (25 分)设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 ——即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。输入格式:输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空

2021-04-25 19:49:22 1899

原创 快速幂取模

long long quick_mod(long long a,long long b){ long long ans = 1; a%Mod;//对刚进来的a进行取模运算,避免后面第一次求平方溢出 while(b) { if(b&1)//对2进制下的b进行按位与1运算,求二进制下b的最低位是否为1; ans = ans*a%Mod; b>>1; a = a*a%Mod; } return ans%Mod;}...

2021-04-21 14:56:15 95

原创 L2-1 简单计算器 (25 分)详解c语言 模拟堆栈

L2-1 简单计算器 (25 分)本题要求你为初学数据结构的小伙伴设计一款简单的利用堆栈执行的计算器。如上图所示,计算器由两个堆栈组成,一个堆栈 S​1存放数字,另一个堆栈S​2 存放运算符。计算器的最下方有一个等号键,每次按下这个键,计算器就执行以下操作:从S ​1中弹出两个数字,顺序为 n​1和 n2 ;从 S​2中弹出一个运算符 op;执行计算 n​2 op n​1 ;将得到的结果压回 S1​​ 。直到两个堆栈都为空时,计算结束,最后的结果将显示在屏幕上。输入格式:输入首先在第一行给

2021-04-19 21:50:32 5538 2

原创 堆中的路径 (25 分)

7-17 堆中的路径 (25 分)将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000,10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。输出格式:对输入中给出的每个下标i,在一行中输出从H[i]到根结点的路径上的数据。数字间以1个空格分隔,行末不得有多余空格。输入样例:

2021-04-15 22:03:18 300

原创 1062 最简分数 (20 分)

1062 最简分数 (20 分)一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0。最简分数是指分子和分母没有公约数的分数表示形式。现给定两个不相等的正分数 N ​1 ​​ /M ​1 ​​ 和 N ​2 ​​ /M ​2 ​​ ,要求你按从小到大的顺序列出它们之间分母为 K 的最简分数。输入格式:输入在一行中按 N/M 的格式给出两个正分数,随后是一个正整数分母 K,其间以空格分隔。题目保证给出的所有整数都不超过 1000。输出格式:在一行中按 N/M 的格式列出两个给定分

2021-04-06 21:00:26 131

原创 1053 住房空置率 (20 分)

1053 住房空置率 (20 分)在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断。判断方法如下:在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为“可能空置”;若观察期超过某给定阈值 D 天,且满足上一个条件,则该住房为“空置”。现给定某居民区的住户用电量数据,请你统计“可能空置”的比率和“空置”比率,即以上两种状态的住房占居民区住房总套数的百分比。输入格式:输入第一行给出正整数 N(≤1000),为居民区住房总套数;正实数

2021-04-01 17:36:22 113

原创 1045 快速排序 (25 分)

1045 快速排序 (25 分)著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定 N=5N = 5N=5, 排列是1、3、2、4、5。则:1 的左边没有元素,右边的元素都比它大,所以它可能是主元;尽管 3 的左边元素都比它小,但其右边的 2 比它小,所以它不能是主元;尽管 2 的右边元素都比它大,

2021-04-01 15:59:22 95

原创 1028 人口普查 (20 分)

1028 人口普查 (20 分)某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数 N,取值在(0,10​^5];随后 N 行,每行给出 1 个人的姓名(由不超过 5个英文字母组成的字符串)、以及按 yyyy/mm/dd(

2021-04-01 12:11:55 82

原创 1012 数字分类 (20 分)

1012 数字分类 (20 分)给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:A​1​​ = 能被 5 整除的数字中所有偶数的和;A​2​​ = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n​1​​ −n​2​​ +n​3​​ −​4​​ ⋯;A​3​​ = 被 5 除后余 2 的数字的个数;A​4 = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;A​5​​ = 被 5 除后余 4 的数字中最大数字。A​5​​ = 被 5

2021-03-30 18:02:03 152

原创 1014 福尔摩斯的约会 (20 分)

1014 福尔摩斯的约会 (20 分)大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdkd&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同的字符是 E ,那是第 5 个英文字母,代表一天里的第14 个钟头(于是一天的 0 点到 23 点由数字 0

2021-03-30 17:26:08 79

原创 lcm和gcd

lcm和gcdlcm即最小(least)公倍数int lcm(int a, int b){ if(b==1) return a; return a*b/gcd(a,b);}gcd即最大公约数int gcd(int a, int b){ if(b==0) return a; return gcd(b,a%b);}

2021-03-21 14:26:47 212

原创 6-3 求链表的倒数第m个元素

6-3 求链表的倒数第m个元素 (20 分)请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素。函数接口定义:ElementType Find( List L, int m );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针

2021-03-16 16:47:48 368

原创 6-3 两个有序链表序列的合并

6-3 两个有序链表序列的合并 (15 分)本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node *PtrToNode;struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */};typedef PtrT

2021-03-16 16:44:21 364

原创 6-2 链式表的按序号查找

6-2 链式表的按序号查找 (10 分)本题要求实现一个函数,找到并返回链式表的第K个元素。函数接口定义:ElementType FindKth( List L, int K );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef PtrToLNode List;L是给定单链表,函数FindKth要返回链式表

2021-03-16 16:42:29 762

原创 6-1 求链式表的表长

6-1 求链式表的表长 (10 分)本题要求实现一个函数,求链式表的表长。函数接口定义:int Length( List L );其中List结构定义如下:typedef struct LNode *PtrToLNode; struct LNode { ElementType Data; PtrToLNode Next; }; typedef PtrToLNode List;L是给定单链表,函数Length要返回链式表的长度。裁判测试程序样例:#inclu

2021-03-16 16:40:31 942

原创 7-7 字符串修改 (15 分)

7-7 字符串修改 (15 分)删除给出字符串中的元音字母,同时将辅音字母改为小写,并在前面加一个“.”。元音字母是"A", “O”, “Y”, “E”, “U”,“I”(不区分大小写)输入格式:输入一个字符串输出格式:输出按要求修改后的字符串输入样例:在这里给出一组输入。例如:tOur输出样例:在这里给出相应的输出。例如:.t.r#include<stdio.h>int main(){ char a[1000]; int i=0; sca

2021-03-14 17:31:53 252

原创 7-5 密码锁 (10 分)

7-5 密码锁 (10 分)在神秘的乌啦啦国度有一个非常神秘的基地,多年来,小明家族一直在为前往神秘基地而努力着。终于在历经数千年的探索之后,他们来到了神秘基地的大门口。现在他们站在入口处,但要进去需要通过神秘的密码锁。密码锁是一个3 × 3的方形数字键盘,键盘上数字为1到9。聪明的小明成功破解了密码锁。即,输入的密码在方形键盘上的位置是呈中心对称的,即可成功通过。现在小明家族开始按密码,你能模拟最终密码锁反馈结果嘛?输入格式:第一行输入一个t表示测试用例的组数,随后3×t行,包含t个3 × 

2021-03-14 17:31:16 472

原创 7-4 递增序列 (15 分)

7-4 递增序列 (15 分)递增序列指的是,在序列中,对于任何两个相邻的数b[i]和bi+1,总有b[i]<b[i+1]。现在,给你一个序列b[1],b[2],…b[n],和一个正整数d,每次,你可以选择序列中的某一个数,然后给他加上d。那么,最少需要多少次操作才能将序列变成一个递增序列呢?输入格式:输入第一行是两个正整数n和d,2<=n<=2000,1<=d<=10^ 6。接下来一行有n个数,分别表示b[1],b[2]…b[n]这些数,1<=b[i]&l

2021-03-14 17:30:04 342 2

原创 求最大、次大和第3大的值

7-1 求最大、次大和第3大的值 (25 分)本题目要求读入n个整数,要求用最少的比较次数,输出它们的最大值、第2大的值和第3大的值。例如,对于13 13 1 10 3410这6个数,最大值为34,第2大的值为13,第3大的值为10。输入格式:输入有两行。第一行为整数个数n(≤1 000 000),第二行给出n个以空格分隔的整数。输出格式:对每一组输入,在一行中输出最大值、第2大的值和第3大的值值,中间以一个空格分隔,但行尾没有多余空格。如果输入数据不足三个,则输出“Invalid

2021-03-11 09:45:52 1330 1

原创 6-1 数组元素的区间删除

6-1 数组元素的区间删除 (20 分)给定一个顺序存储的线性表,请设计一个函数删除所有值大于min而且小于max的元素。删除后表中剩余元素保持顺序存储,并且相对位置不能改变。函数接口定义:int Delete( int A[], int L, int minA, int maxA );其中A是整型数组,存储原始线性表的元素;L是表长,即A中元素的个数;minA和maxA分别为待删除元素的值域的下、上界。函数Delete应将A中所有值大于minA而且小于maxA的元素删除,同时保证表中剩余

2021-03-08 15:54:46 2386

原创 C - 3 求正弦值

C - 3输入一组勾股数 a,b,c(a≠bc),用分数格式输出其最小锐角的正弦值。(要求是最简分数)输入格式一行,包含三个数,即勾股数 a,b,c(任意顺序)。输出格式一行,包含一个数,即最小锐角的正弦值。Sample Input3 5 4Sample Output3/5在这里插入代码片#include<stdio.h>int main(){ int a,b,c; int max,min; int r; scanf("%d%d%d",&amp

2021-03-07 18:28:49 562

原创 B - Fibonacci Again

B - Fibonacci AgainThere are another kind of Fibonacci numbers: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2).InputInput consists of a sequence of lines, each containing an integer n. (n < 1,000,000).OutputPrint the word “yes” if 3 div

2021-03-07 16:31:55 97

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除