- 博客(42)
- 收藏
- 关注
原创 ACM模板大全
任何一个大于1的自然数N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积。 对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目。 求解非负整数解(x, y),输出x最小的解。 用来求解不定方程。
2022-10-07 19:31:00
2157
1
原创 第26次CCF计算机软件能力认证
T3 码风较为清奇的70分代码(赛时写的,现在懒得调,先放上来再说) 用一个map将角色名映射成数字,然后建2个map数组,其下标对应映射前的角色,然后分别表示这个角色关联的用户和用户组名称,用bool的值代表该角色是否关联了用户和用户组。 map乱搞。T2 用map模拟一下就行了。 先用一个数组记录一下大地图里面1的坐标。然后以每个为1的坐标为左下角的点,直接和藏宝图匹配就行了。T1 简单模拟—
2022-06-13 22:59:33
1396
3
原创 [动态规划]最长上升二元组序列
问题来源形如{(1,1),(2,3),(5,6),(8,7),(9,8)}这样的由二元组构成的序列称为上升序列,该序列满足对任意的i<j,(ai, bi), (aj, bj) 都有,ai < aj, bi < bj。现给出n个二元组,要求选择最大数量的二元组组成最长上升序列,输出序列长度和序列元素在原数组的编号。先按第一个元素的由大到小排序,再对第二个元素求一遍最长上升子序列即可。原题目加强了该问题,要求上升序列的第一个二元组(a, b)满足 a > w, b >
2022-04-15 16:35:29
1075
1
原创 [计算几何]给三个定点,求所能确定的最小正多边形的面积
问题源自Codeforces Beta Round #1C. Ancient Berland Circus该问题可分解为一下几个步骤:1.找到这三个点确定的三角形的外接圆半径。两点距离公式得到三边长a,b,c通过海伦公式求得三角形面积S,再由公式r = a * b * c / (4 * S)求得半径。2.根据半径与边长的关系求出边长对应的圆心角,再求出圆心角的最大公约数即可。 3.根据圆心角求出每个小三角形的面积与小三角形的个数,相乘后即为所求的...
2022-04-01 21:12:02
1074
原创 阶乘逆元与组合数模板
单纯存模板。以D - Iroha and a Grid的AC代码为例#include<bits/stdc++.h>using namespace std;#define ll long longconst int maxn=2e5 + 5;const int mod=1e9+7;ll fac[maxn];ll inv[maxn];ll quick_pow(ll a,ll b,ll p){ ll ans=1; while (b) { if (b&
2022-03-25 21:40:24
855
原创 位运算技巧
目录零.一些组合位运算一.快速幂二.64位乘法取模三.状态压缩零.一些组合位运算操作 运算 取出整数n在二进制表示下的第k位 (n>>k)&1 取出整数n在二进制表示下的第0~k-1位(后k位) (n&((1<<k)-1) 把整数n在二进制表示下的第k位取反 n xor (1<<k) 对整数n在二进制表示下的第k位赋值1 n|(1<<k) 对整数n在二进制表示下的第
2022-03-14 20:10:27
1655
原创 C. Factorials and Powers of Two
目录C. Factorials and Powers of Two一.原题描述二.题意理解三.题解四.AC代码B. Quality vs Quantity一.原题描述二.题解三.AC代码C. Factorials and Powers of Two一.原题描述二.题意理解当一个数由阶乘或者2的幂次组成时,可以称它为强大的。现在给一个正整数n,找到最小的个数k使得n是由k个阶乘或者2的幂次相加得到的强大的数。...
2022-03-05 11:17:26
1292
原创 C. Great Sequence
目录C. Great Sequence原题描述题意理解题解AC代码B. Power Walking原题描述题解AC代码C. Great Sequence原题描述题意理解我们可以从数组中任选两个数x,y,满足x*p=y即可。如果一个数组中所有的数都可以组成这个关系,则称为好数组。现题目给出数组元素与p,你可以在数组中添加任意元素,至少添加多少个元素能使题目所给数组符合要求。 说明:当p=4时,1,4,4,...
2022-02-27 15:45:52
451
原创 最长上升序列模板
复杂度:O(nlogn)。以洛谷P1020 [NOIP1999 普及组] 导弹拦截的AC代码为例。数组b1是最长不上升子序列,数组b2是最长上升序列。仅供个人参考,不做详解,单纯存个板子。维护一个单调数组,利用二分查找以O(logn)的代价替换合适的值。代码如下#include<bits/stdc++.h>using namespace std;#define ll long long#define LM LLONG_MAX#define IM INT_MAX
2022-02-24 17:09:39
532
原创 区间内素数个数模板
以洛谷P1865 A % B Problem的AC代码为例。仅供个人使用,故不作详细的解释与说明。用prime[i]表示从[0,i]的范围内有多少个素数。由于该题是在一定区间内的多次查询,且数据范围为1e6,故使用前缀和来实现O(1)的查询。[a,b]内素数的个数即为prime[b]-prime[a-1]。#include<bits/stdc++.h>using namespace std;bool is_prime[1000010];int prime[100001
2022-02-17 13:21:39
610
原创 分解质因数模板
以P2092 数字游戏的AC代码为例。仅供个人使用,故不做讲解与说明。#include<bits/stdc++.h>using namespace std;#define ll long long#define LM LLONG_MAX#define IM INT_MAX#define _for(i,a,b) for(int i=a;i<=b;i++)inline int read(){ int x=0,f=1; char ch=getchar();
2022-02-17 13:16:19
3383
原创 数位dp模板
简简单单存个板子,免得以后到处翻文件和网站。注:并非讲解,仅作个人使用。解释选用P2602[ZJOI2010]数字计数这一题的AC代码作为模板。1.dp的n维数组每一维表示着当前的某一种状态,以本题举例,dp[pos][sum][st]中,pos表示当前的数位,sum表示当前数位的高阶数位的中某个数出现的次数,st表示是否有前导0。2.dfs搜索每一个数位可能取的值并保存当前状态。同样,以本题举例,pos表示当前数位,pre表示前一位的大小(这题貌似没用上),st表示是否是前导0,su.
2022-02-11 21:51:45
553
原创 B. GCD Arrays
目录B. GCD Arrays一.原题描述二.题意理解三.题解四.AC代码A. Download More RAM一.原题描述二.题解三.AC代码B. GCD Arrays一.原题描述二.题意理解数组a有从[l,r]的所有元素。如:l=3,r=7时,a={3,4,5,6,7}。现定义如下操作:从a中选择两个数,删除他们,并把他们的乘积加入到a中。现在能进行k次操作,判断经过k次操作后,a...
2022-01-23 12:46:47
1182
2
原创 JAVA可变参数和递归笔记
目录一.可变参数二.递归1.求阶乘2.P1028 [NOIP2001 普及组] 数的计算原题描述AC代码一.可变参数//可变参数public class demo02 { public static void main(String[] args) { demo02 demo02 = new demo02(); demo02.test(1,2,3,4,5); } /* 在方法声明中,在指定参数类型后加...
2022-01-20 21:23:53
161
原创 JAVA方法的定义,调用和重载笔记
java的方法类似于c++的函数,但是面向对象的特性远强于c++。笔记和代码public class demo01 { /* java方法是语句的集合,它们在一起执行一个功能。类似于其他语言的函数,是一段用来完成特定功能的代码片段。 -方法是解决一类问题的步骤的有序组合 -方法包含于类或对象中 -方法在程序中被创建,在其他地方被引用 原则:一个方法只完成一个功能。 方法的定义...
2022-01-19 21:23:15
701
原创 JAVAScanner和三大结构笔记
一.Scanner这目前是我所接触到java与c++最大的不同点,即用户交互的实现。java提供了一个scanner类满足程序的输入需求。笔记在代码的注释里面。1.next()和nextLine()import java.util.Scanner;public class demo01 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner s...
2022-01-18 20:58:03
878
原创 C. Monsters And Spells
目录C. Monsters And Spells题意理解题解AC代码B. Minor Reduction原题描述题解AC代码A. Equidistant Letters题解AC代码D. Martial Arts Tournament题解AC代码C. Monsters And Spells原题描述题意理解这是一个游戏。在第i秒时,可能会出现血量为hi的怪兽。所幸你会魔法,你释放法术造成的伤害...
2022-01-17 16:28:30
1121
2
原创 B. Not Sitting
目录B. Not SittingA. Not ShadingB. Not Sitting原题描述题意理解教室里有n行m列座位,同学A可以选择k桶颜料给座位染色,同学B在同学A染完色后选择座位,他不会选择有颜色的座位,同学B选完座位后,同学A再选座位。B希望经可能离A近一些,而A希望离B远一些,他们每次的选择都是最明智的。请输出K从0到n*m-1取,对应的A,B之间的距离。A(a,b),B(c,d),d=|a-c|+|b-d|。题解...
2022-01-16 11:39:21
978
原创 JAVA变量和运算符笔记
学到现在发现java的许多规则与c++几乎一致,学过c的人应该很容易接受,但是为了内容的完整性,我还是会把与c相似的地方写出来,不会省略。一.变量按作用域来区分变量,有三种:类变量,实例变量,局部变量。public class demo05 { //类变量 static static double salary = 2500; //属性:变量 //实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0 //布...
2022-01-15 13:30:53
269
原创 JAVA数据类型笔记
用代码+注释的形式给出,我觉得更为生动,相较于看着ppt或书籍。//数据类型public class demo02 { public static void main(String[] args) { //八种基本数据类型 //整数 int num1 = 10; //int 占4个字节范围:-128-127 byte num2 = 20; //byte 占一个字节范围:-32768-32767
2022-01-15 00:08:31
341
2
原创 C. Balanced Stone Heaps和P2440 木材加工
原题描述题意理解有n堆石头,第i堆有hi个石头,现定义如下操作:1.从第3堆开始,到第n堆,每一堆都要执行一次。2.对于第i堆石头,你可以选择一个数d(0<=3*d<=hi),从第i堆移动d个石头到第i-1堆,再从第i堆移动2*d个石头到第i-2堆。3.第i堆石头减少3*d个,第i-1堆增加d个,第i-2堆增加2*d个。对于每一堆石头选择相同或不相同的d,使得所有操作结束后,最小堆中的石头数量最大。题解初看此题的第一反应就是贪心,但是细...
2022-01-14 13:20:18
457
原创 JAVA开发环境搭建
目录一.JDK下载与安装二.配置环境变量三.打印helloworld。一.JDK下载与安装搜索jdk8,一定要进入官网Oracle下载。然后根据自己设备的操作系统选择对应的版本如果在官网下载到一半卡住,可以使用华为镜像提供的网址华为镜像JDK8下载安装。如果你不知道你的操作系统是多少位,右击,选择属性,就可以看到了。运行下载到的.exe下一步,建议路径设置成比较好找的,后面配置环境变量要用到。二.配置环境变量右击,选择属性,点...
2022-01-13 11:51:03
27952
4
原创 C. Division by Two and Permutation
Codeforces Round #764 (Div. 3)A,B,C三题C. Division by Two and PermutationA. Plus One on the SubsetB. Make AP
2022-01-13 00:21:29
763
原创 B. Game on Ranges
Codeforces Round #763 (Div. 2) A,B两题A.Robot CleanerB.Game on Ranges
2022-01-05 22:15:21
2698
原创 超详细的排序算法实现与分析(插入排序,归并排序,快速排序)
比较排序的定义 在排序的最终结果中,各元素的次序依赖于它们之间的比较,我们把这类排序算法称为比较排序。比较排序算法的下界 在最坏情况下,任何比较排序算法都需要做次比较。证明: 考虑一颗高度为h,具有L个可达叶节点的决策树,它对应一个对n个元素所做的比较排序(如下图所示)。因为输入数据的n!种可能的排列都是叶节点,所以有n!<=L。由于在一颗高度为h1的二叉树中,叶节点的数目不多于,所以可以得到:n!<=...
2021-12-28 22:41:21
3280
原创 C. Paprika and Permutation
Codeforces Round #761 (Div. 2)三题A. Forbidden SubsequenceB. GCD ProblemC. Paprika and Permutation
2021-12-21 14:06:42
605
原创 一看就懂的贪吃蛇游戏(c++实现)
建议先将代码复制下来跑一遍再来看思路!!! 通俗易懂,请仔细看。 值得注意的是我给出的代码没有加墙体,如有需要自己添加。 也没有难度设计,同上。 地图大小(这里设计了墙体,代码中未实现) 设置一个整形数组map,其大小为1600,对应着地图的大小为1600,并初始化数组,令数组中的值全为0,0代表空地。我们通过设定窗口的宽度为80,打印时每个map[i] 所对应的字符占两格位置即可实现每打印4...
2021-12-18 23:25:38
3640
原创 D. Array and Operations
Codeforces Round #760 (Div. 3) 三题D. Array and OperationsB. Missing BigramA. Polycarp and Sums of Subsequences
2021-12-15 18:30:31
1919
原创 贪心算法(基础)
贪心算法的主要特点是一个大的问题可以分成几个小的子问题,而且这些子问题的结果互不干扰,我们寻找子问题的最优解的同时,最终将子问题的最优解近似处理成大问题的解,在一些情况下这是行的通的,贪心的题目都具有明显的特点。接下来几个题目就是典型的贪心算法。一.部分背包问题题目来自洛谷题目描述阿里巴巴走进了装满宝藏的藏宝洞。藏宝洞里面有N(N≤100)堆金币,第i堆金币的总重量和总价值分别是mi,vi(1≤mi,vi≤100)。阿里巴巴有一个承重量为T(T≤1000)...
2021-12-14 18:07:56
867
原创 深度优先搜索dfs
DFS的核心思想是递归,从初始起点一直递归到所要达到的终止节点,然后返回上一个递归层,再进入其他的下个递归层或终止节点,整个过程可以看作是一个树。P1036 [NOIP2002 普及组] 选数ac代码#include<bits/stdc++.h>using namespace std;int a[21],n,k,ans[20],sum,m=0,z=1;bool vis[21];bool shu(int S) { for (int i = 2...
2021-12-09 23:43:50
118
原创 大数相加,相乘,阶乘(c++实现)
大数相加#include<bits/stdc++.h>using namespace std;int main() { string a, b,ans; cin >> a >> b; int len1 = a.length(); int len2 = b.length(); if ((len1-len2)>0) { for (int i = 0; i < (len1-len2); i++) { b = '0' + b; }
2021-12-06 23:03:15
580
原创 约瑟夫问题
在学数组的时候做过一次这道题,使用了取模的办法实现了循环数组来解决这道题。 在学完链表以后再次看到这道题便使用链表来做了一遍。题目描述m 个人围成一圈,从第一个人开始报数,数到 n 的人出列,再由下一个人重新从1开始报数,数到 n的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。用链表能非常简单且清晰的解决这道问题。 用head,back分别保存头节点和尾节点的地址,该链表的尾节点指向头节点形成一个环状...
2021-12-01 21:04:24
988
原创 二叉树的遍历(层次,前序,中序,后序)
#include<bits/stdc++.h>using namespace std;struct Bstnode { char data; Bstnode* left; Bstnode* right;};//创建新节点Bstnode* GetNewNode(int data) { Bstnode* newNode = new Bstnode(); (*newNode).data = data; newNode->left = newNode->right =.
2021-12-01 19:21:59
967
原创 二叉搜索树的插入,删除,查找操作(c/c++实现)
//Binary Search =tree#include<bits/stdc++.h>using namespace std;struct Bstnode { int data; Bstnode* left; Bstnode* right;};//创建新节点Bstnode* GetNewNode(int data) { Bstnode* newNode = new Bstnode(); (*newNode).data = data; newNode->left .
2021-11-29 10:30:03
585
原创 数据结构之二叉树(定义,属性,逻辑视图 )
树的定义与基本属性:树的定义:链接在一起的被称为节点的实体的集合用来模拟层级结构。树的递归属性:树由一个称为树根的节点和一些子树组成,组织方式是,树的根节点包含指向所有子树的根节点的链接树的一些属性:在一个有效的树中,如果有N个节点就会有N-1条边。深度:树的节点X的深度被定义为从根到节点X的路径长度。路径上的每一条边贡献一个长度单位。根的深度是0。高度:树的节点X的高度被定义为从该节点到一个叶子节点的最长路径上的边数。叶子节点的高度是0。树的高度:树的高度等于根节点的高度。
2021-11-27 21:34:14
462
原创 C. Polycarp Recovers the Permutation
Problem - 1611C - CodeforcesPolycarp wrote on a whiteboard an arrayppof lengthnn, which is a permutation of numbers from11tonn. In other words, inppeach number from11tonnoccurs exactly once.He also prepared a resulting arrayaa, which is in...
2021-11-26 16:46:58
800
原创 C. Banknotes
In Berland,nndifferent types of banknotes are used. Banknotes of theii-th type have denomination10ai10aiburles (burles are the currency used in Berland); the denomination of banknotes of the first type is exactly11.Let's denotef(s)f(s)as the mini...
2021-11-24 12:21:25
796
原创 B. Groups
B. Groupstime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputnnstudents attended the first meeting of the Berland SU programming course (nnis even). All students will be divided into two..
2021-11-17 21:31:04
410
原创 B. Reverse Sort
B. Reverse Sorttime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAshish has a binary stringssof lengthnnthat he wants to sort in non-decreasing order.He can perform the following o...
2021-11-16 13:23:17
887
原创 B. Update Files
B. Update Filestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputBerland State University has received a new update for the operating system. Initially it is installed only on the11-st .
2021-11-15 16:44:38
1039
全国空气质量监测数据集
2024-03-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人