自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 AcWing 803.区间和并

这里有个技巧: 如果我们把所有区间按照左端点排序,那对于最左边的区间,其他区间都只会在他的右边,最多是跟他左端点相同。最后要求合并区间完成后还剩余多少区间,那我们就可以去为何一个总数,如果出现重叠了,那总数就减一,否则,我们只需要去更新一下新的区间范围。例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。给定 n 个区间 [li,ri] ,要求合并所有有交集的区间。共一行,包含一个整数,表示合并区间完成后的区间个数。当然,如果要写成区间和并的模板,我们还可以求得剩余的。

2024-09-20 09:26:10 576

原创 AcWing 802.区间和

中快速找到所需要操作的位置在arr中的哪个位置(因为arr中存储的坐标是升序排列的),找到所对应的位置之后,我们就可以在val数组中对该位置进行加数的操作,这样我们就实现了对。接下来,进行 m 次询问,每个询问包含两个整数 l 和 r ,你需要求出在区间 [l,r] 之间的所有数的和。我们可以只映射添加数的点,之后查询的时候,我们二分查询出第一个大于等于。现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。,显然开不了那么大的数组,但是看其他数据范围,发现。的位置,和最后一个大于等于。

2024-09-19 21:29:41 775

原创 牛客周赛 Round 60

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

2024-09-17 11:49:43 444

原创 练习赛09

又是一天目录A - On and OffB - Takahashi's Secretdfs循环C - Final DayD - Linear ProbingE - Integer Sequence FairA - On and Off判断是否是同一天。#include<bits/stdc++.h>#include<vector>#define ll long longusing namespace std;const int maxn = 2e5 + 10;i

2022-01-19 21:12:20 729 1

原创 C++STL中map常见用法

map是一类关联式容器自动建立Key-value的对应。key 和 value可以是任意你需要的类型。根据key值快速查找记录,查找的复杂度基本是log(N)。快速插入Key -Value 记录。快速删除记录。根据Key 修改value记录。遍历所有记录。常见用法#include<bits/stdc++.h>#include<map>using namespace std;map<int, char> mp;int main() { fo.

2022-01-18 20:41:50 754

原创 练习赛02

练习赛02题解目录练习赛02A - 10yen StampB - A ReverseC - ProductD - Count IntervalE - Σ[k=0..10^100]floor(X/10^k)A - 10yen Stamp判断是x和y的差值是10的多少倍。向上取整,注意小于0的情况#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>#inc

2022-01-12 00:04:32 333

原创 istringstream分离字符串

istringstream的构造函数原形如下:istringstream::istringstream(string str);作用是从string对象str中读取字符。 istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。vector<string> ss;istringstream record(s);string w;while(record >> w) ss.push_back(w);...

2021-12-27 11:14:26 418

原创 2021年全国大学生数据建模 C题 数学建模大赛

2021年全国大学生数据建模前言一、C 题 生产企业原材料的订购与运输二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、C 题 生产企业原材料的订购与运输示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):im

2021-09-09 18:16:05 3563 1

原创 2021全国大学生数学建模 C题 解题思路和细节展示

C 题 生产企业原材料的订购与运输某建筑和装饰板材的生产企业所用原材料主要是木质纤维和其他植物素纤维材料,总体可分为 A,B,C 三种类型。该企业每年按 48 周安排生产,需要提前制定 24 周的原材料订购和转运计划,即根据产能要求确定需要订购的原材料供应商(称为“供应商”)和相应每周的原材料订购数量(称为“订货量”),确定第三方物流公司(称为“转运商”)并委托其将供应商每周的原材料供货数量(称为“供货量”)转运到企业仓库。该企业每周的产能为 2.82 万立方米,每立方米产品需消耗 A 类原材料

2021-09-09 18:12:55 9130 1

原创 Codeforces Round #712 (Div. 2)

Codeforces Round #712 Div.2A. Déjà VuB. Flip the BitsC. Balance the BitsD. 3-ColoringA. Déjà Vu题意:给定一个字符串,你必须往字符串中加一个字符′a′'a'′a′。加入字符′a′'a'′a′之后若是一个非回文串则输出"YES""YES""YES"并输出这个非回文串。(任意一个)若没有满足的字符串输出"NO""NO""NO"。思路:思考一下,只有该字符串全部都是′a′'a'′a′时没有满足的字符

2021-09-02 17:05:58 171 1

原创 快速求n!的质因数分解【阶乘分解】

快速求n!的质因数分解首先将素数打表存下来。然后对于每一个小于nnn的素数判断在n!n!n!中出现了几次。然后就是如何进行第二步:我们知道n!n!n!中每个小于n的质数一定会出现在n!n!n!中,所以这是一个连续的质数分解,以至于我们可以直接从最小的质数遍历到小于nnn的最大质数(都会出现)。对于一个质数如何判断它在n!n!n!中出现的次数呢?公式对于质数x:cnt[x]=⌊nx1⌋+⌊nx2⌋+⋯+(到x的次方大于n)cnt[x]=\lfloor\frac{n}{x^1}\rfloor+

2021-09-01 16:09:38 967

原创 欧拉筛【线性筛】

欧拉筛和埃氏筛法只有一点不同就是不会重复的进行标记。埃氏筛法:从最小的质数222开始,将每个质数的倍数标记位合数,剩余的未标记的为质数。欧拉筛(线性筛):在埃氏筛法基础上,将重复标记的地方取出,保证每个数只被筛一次。埃氏筛法:O(nloglogn)const int maxn = 1e6 + 10;int vis[maxn], prime[maxn];int cnt = 0;void isprime(){ vis[0] = vis[1] = 1; // 1 和 0 标记为合数 for(

2021-09-01 15:15:29 516

原创 python输入方式大全

python输入方式总结写在开头:在学算法过程中想温习python结果发现连输入都不清楚我是菜鸡总结一下python的输入方式适用于各种网站的算法题目的输入格式单个输入 #单个输入 n = input() #无参数 默认返回字符串 n = input("有提示参数的输入") #有提示性输入语句的输入,仍是以str类型返回 n = int(input()) #根据给定的类型输入,返回值类型int n = float(input()) #根据给定的类型输入,返回

2021-08-15 18:49:39 32001 6

原创 Factorization(组合数学,隔板法应用)

题目链接题意:找到n个数的成绩等于m的总排列方案数(mod 1e9+7)。分析:由乘积我们可以想到将m质因数分解得到质因数的种类数和每个质因数的个数。只要n个数种包含这全部的质因子就行。便转换成了排列问题。当我们通过质因数分解得到每个质因子个数之后,对于每个质因子x有cnt个:将这cnt个x放到n个位置上,某个位置可能为0个x,由此想到隔板法,但是隔板法是处理至少为1的情况,这时候我们假设先给n个位置上都先放置一个数x,然后就变成了n+x个数放到n个位置上,每个位置至少放一个的总方案

2021-08-12 16:06:43 269

原创 排列计数(组合数学,错位排列)

题目:题目链接求有多少种长度为 n 的序列 A,满足以下条件:1∼n 这 n 个数在序列中各出现了一次; 若第 i 个数 Ai 的值为 i,则称 i 是稳定的。序列恰好有 m 个数是稳定的。满足条件的序列可能很多,序列数对 109+7 取模。题目大意:求长度为n的序列中有m个数是满足 a[i]=ia[i]=ia[i]=i 的序列方案数。解题思路:题意转换一下就是我们从n个位置中找m个位置让他们满足 a[i]=ia[i]=ia[i]=i 然后剩下的 n−mn-mn−m 个数全排列的方案数。

2021-08-12 15:34:12 481

原创 错位排列超详解(组合数学)

错位排列全错位排列最经典的问题是装错信封问题。我们信封问题转换一下:对于1−n1-n1−n 共n个数字组成的序列中,每个数字仅出现一次,求每个数字跟位置完全不对应的总方案数。对于第一个位置上的数字1它有 n−1n-1n−1 种方案数对于第二个位置上的数字2有两种放法:①.放到1的位置上:这时候就是已经把1和2放置好,剩下n−2n-2n−2个位置dp[n−2]dp[n-2]dp[n−2]②.放到后面n−2n-2n−2个位置上这种情况其实就转换到了放数字1的情况(只是总数减一)它就相当

2021-08-12 15:33:10 5207

原创 生成函数(母函数)--详解+例题

生成函数百度百科:在数学中,某个序列的母函数(Generatingfunction,又称生成函数)是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。使用母函数解决问题的方法称为母函数方法。总结一下来说就是一句话:既然是总结那就最后再回来看把组合问题的加法法则和幂级数的的乘幂的相加对应起来母函数分为很多种,包括普通母函数、指数母函数、L级数、贝尔级数和狄利克雷级数等。这里就细讲一下普通型母函数。普通型母函数:定义:对于任意数列 a0,a1,a2...ana_0, a_1, a

2021-07-28 20:18:36 3274

原创 HDU dice 期望DP

题意:有一个m面的骰子,且质量均匀(掷骰子出现每一面的概率相同),问: 掷出n次结果都相同的期望投掷次数和n次结果都不同的期望投掷次数。分析: 第一种:设dp【i】来表示已经有连续i个相同面时,要到达目标状态的期望次数。①.下一次投掷和前i次都相同的面,dp【i】= (dp【i】+ 1) * (1.0/m)②.下一次投掷和前i次都不一样的面, 则需要从第一次开始算 dp【i】= (dp【1】+ 1) * (m - 1.0) / m综合:dp【i】= (dp【i+1】) * 1.0 / m +

2021-07-23 15:57:52 151

原创 P1504 积木城堡

首先翻译一波题目:题意:他有n座城堡,每座城堡由从小到大依次增大的立方体组成,求从每座城堡中移去某些立方体能达到的最大共同高度。输入格式:第一行是一个整数 n,表示一共有 n 座城堡。 以下 n 行每行是一系列非负整数,用一个空格分隔,按从下往上的顺序依次给出一座城堡中所有积木的棱长。用 -1 结束。输出格式:一个整数,表示最后城堡的最大可能的高度。 如果找不到合适的方案,则输出 0。思路:记录下来所有城堡的最小高度在输入每座城堡时用dp[k]表示该座城堡是否能通过移去第i个立

2021-05-15 17:58:17 619

原创 专题-动态规划

A - 一只小蜜蜂HDU - 2044状态转移方程:dp[n] = dp[n-1] + dp[n-2]#include<bits/stdc++.h>#define ll long longusing namespace std;const int maxn = 1e5 +10;ll dp[60];void init(){ dp[1] = 1; dp[2] = 2; for(int i=3; i<60; i++){ dp[i] = dp[i-1] + dp[i-

2021-03-23 20:29:18 229

转载 Windows10 - 在当前文件夹下打开cmd(命令行)的方法

安利一个方便又快捷的方法链接

2020-12-21 23:22:46 3072 1

转载 spyder汉化方法

spyder汉化方法:1、下载安装好Anaconda3;在此强调请安装Anaconda3,如果是anaconda2,汉化可能会遇到出错或者乱码问题。2、spyder的版本至少在3.x以上。(查看方法:打开spyder—help—About Spyder)3、尽量升级Spyder到最新版本。方法:(前提是你在Anaconda环境下)cmd-----conda update spyder-----若不是最新版本,在控制台(cmd)会问你(y or n)升级,当然输入y回车,很快就会升级完成。4、汉化步骤

2020-12-21 23:18:36 10253

原创 前缀和与差分数组【集训笔记】

一维前缀和定义:前缀和是一个数组的某项下标之前(包括此项元素)的所有数组元素的和。解决问题:长度为n的序列,m次询问,每次输入一对数a,b。输出从第a个数到第个数的和;时间复杂度O(n+m)sum[i]-sum[i-1] = a[i]求前缀和代码:for(int i=1;i <=10;i++){ cin >>a[i];// 初始化原数组 s[i]=s[i -1]+a[i]; // 求前缀和}计算区间和[l,r]:cout<<s[r]-s[l-1

2020-07-14 21:15:47 181

原创 洛谷 P1147 连续自然数和【数论第四题】

题目题目描述对一个给定的自然数M,求出所有的连续的自然数段,这些连续的自然数段中的全部数之和为M。例子:1998+1999+2000+2001+2002 = 10000,所以从1998到2002的一个自然数段为M=10000的一个解。输入格式包含一个整数的单独一行给出M的值(10 \le M \le 2,000,000)。输出格式每行两个自然数,给出一个满足条件的连续自然数段中的第一个数和最后一个数,两数之间用一个空格隔开,所有输出行的第一个按从小到大的升序排列,对于给定的输入数据,保证至少

2020-05-11 21:19:17 761 1

原创 洛谷 P1327 数列排序 【数论第三题】

题目题意:给一个数组,问将其从小到大排序需要交换几次数字;分析:用个map容器,来存每个值对应的位置,直接遍历数组,找到排序之后的数组与原数组不同的位置,然后用map来交换;上代码(详解):#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<map>#define ll long longusing name

2020-05-10 10:35:59 296

原创 (二分)lower_bound, upper_bound的用法示例

头文件:#include时间复杂度:O(lon n), n为数组长度。lower_bound:功能:查找非递减序列[first,last)内第一个大于或等于某个元素的位置。返回值:如果找到返回元素的地址否则返回last的地址...

2020-05-10 09:47:18 124

原创 洛谷 P1591 阶乘数码 【数论第二题】

题目题意:求一个数(1-1000)的阶乘结果中包括某个数字的次数;分析:题目本意是高精度,为了熟悉java就用java大数水了一波。代码:import java.math.BigDecimal;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); i

2020-05-09 20:23:00 247

原创 CodeForces - 510B Fox And Two Dots(BFS)

传送门题意:判断相同字母能否连成环;bfs直接开搞;#include<bits/stdc++.h>using namespace std;int d[4][2] = {0,1,1,0,0,-1,-1,0};//遍历四个方向int vis[100][100];char tu[100][100];int n, m, ans;void bfs(int x, int y, int nx, int ny){//从nx ny 开始走到x y if(vis[x][y]){ //是否走

2020-05-08 19:39:15 182

原创 洛谷 P3152 正整数序列【数论第一题】

题目题意:给一组【1,n】的数,每次可选取任意一段减去任意一个相同的数,问最少减几次可以都变为0; ~~开始分析~~ 对于每个正整数都可以被表示为2的次方相加的形式(这里其实就是二进制)For example:观察发现:所有正整数都可以被拆成不大于log2(n)+1个互不相同的2的次方相加。For example:step1: 减去2的零次方step2: 减去2的一次方step3: 减去2的二次方step4: 减去2的三次方这样操作四次之后即可都为0一共lo

2020-05-08 19:07:47 248

原创 codeforces Flipping Game

题意:给出一个数组 由0 和 1组成。任意翻转一个子段 x = 1-x;即0变1 1变0;思路:1<n<100 数据量小 直接暴力就可过,也可以dp。统计1的总数,再去遍历去找出一段 翻转后 1最多的一段。#include<bits/stdc++.h>#define ll long longusing namespace std;int main(){ ...

2020-05-08 12:45:29 195

原创 CodeForces - 707C Pythagorean Triples(数学 勾股数)

题意:给出一个数,问概述是否为勾股数组中的一个数,若是则输出另外两个勾股数,否则输出-1。规律:对于一个直角三角形,我们假设给的数n为直角三角形的直角边则:n² = a²-b² --> n² = (a+b)(a-b)讨论:①当n为1或2时,组不成直角三角形;②当(n&1)n为奇数时,可以另a-b=1,则a+b=n² --> b = (n²+1)/2; a = (...

2020-05-08 12:21:26 173

原创 codeforce A - 1296C(1500)(map)

There is a robot on a coordinate plane. Initially, the robot is located at the point (0,0). Its path is described as a string s of length n consisting of characters ‘L’, ‘R’, ‘U’, ‘D’.Each of these c...

2020-04-05 20:06:51 201

转载 取石子游戏-推理

取石子游戏是一个古老的博弈游戏,发源于中国,它是组合数学领域的一个经典问题。它有许多不同的玩法,基本上是两个玩家,玩的形式是轮流抓石子,胜利的标准是抓走了最后的石子。玩家设定: 先取石子的是玩家A,后取石子的是玩家B。经典的三种玩法:一、巴什博奕(Bash Game),有1堆含n个石子,两个人轮流从这堆物品中取物,规定每次至少取1个,最多取m个。取走最后石子的人获胜。二、尼姆博奕(Nimm...

2020-02-10 10:44:01 1294

原创 牛客小白月赛2 A-数字方针

链接:https://ac.nowcoder.com/acm/contest/86/A来源:牛客网#include<iostream>using namespace std;int main(){ int n; cin >> n; int num = 1; int res = n*n-n+1; for(int i=1; i<=n; i++){ ...

2020-02-09 22:25:33 193

原创 exp()函数

exp()函数1· exp()函数的返回值为e的x次方,2· e是自然对数的底(约等于2.718281828459045…)。在高等数学中学过两个重要极限其中一个: 用法:double exp(double x);#include <stdio.h>#include <math.h>int main(void){ double result; dou...

2020-02-03 21:24:43 10667

原创 The flower

链接:https://ac.nowcoder.com/acm/contest/3665/B来源:牛客网题目描述Every problem maker has a flower in their heart out of love for ACM. As a famous problem maker, hery also has a flower.Hery define string T a...

2020-02-02 18:09:14 214

原创 高精度计算2的n次幂

任意给定一个正整数 N(N≤100),计算 2 的 N 次方的值。输入格式输入一个正整数 N。输出格式输出 2 的 N 次方的值。提示高精度计算。输出时每行末尾的多余空格,不影响答案正确性。样例输入5样例输出32Ps:高精度计算当数据较大时任何数据类型都无法储存,应该用数组来储存。代码如下:#includeusing namespace std;int a[100...

2020-01-29 14:00:22 1496

空空如也

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

TA关注的人

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