自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蓝桥杯:李白打酒加强版

话说大诗人李白,一生好饮。幸好他从不开车。一天,他提着酒壶,从家里出来,酒壶中有酒22斗。他边走边唱:无事街上走,提壶去打酒。逢店加一倍,遇花喝一斗。这一路上,他一共遇到店NN次,遇到花MM次。已知最后一次遇到的是花,他正好把酒喝光了。请你计算李白这一路遇到店和花的顺序,有多少种不同的可能?注意:壶里没酒 (00斗) 时遇店是合法的,加倍后还是没酒;但是没酒时遇花是不合法的。输入格式第一行包含两个整数NN和MM。输出格式输出一个整数表示...

2022-04-30 12:59:23 239

原创 dfs解决选与不选问题

1. 递归实现指数型枚举​​​​​​从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数 n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3#include<cstdio&

2022-04-17 16:26:25 258

原创 CF::B. Odd Swap Sort

题目大意:有多组测试数据,每组测试数据为一个长度为n的正整数数组。问是否可以通过任意此特定操作(每次操作可以选择挨着的一个为奇数,一个为偶数的两个数交换)使数组变为不严格的升序数组。如果可以的话输出“YES”,否则输出“NO”。time limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given an array.

2022-04-15 19:23:29 292

原创 bfs 解决最短路问题

前提:边权都一样时,才能用bfs求最短路问题:给定一个n×mn×m的二维整数数组,用来表示一个迷宫,数组中只包含00或11,其中00表示可以走的路,11表示不可通过的墙壁。最初,有一个人位于左上角(1,1)(1,1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角(n,m)(n,m)处,至少需要移动多少次。数据保证(1,1)(1,1)处和(n,m)(n,m)处的数字为00,且一定至少存在一条通路。输...

2021-09-24 17:17:02 256

原创 Nim游戏--公平组合游戏

公平组合游戏:①有两名玩家交替行动②在游戏进行的任意时刻,可以执行的合法行动与轮到哪名玩家无关;③不行进行的玩家判为输问题:给定nn堆石子,两位玩家轮流操作,每次操作可以从任意一堆石子中拿走任意数量的石子(可以拿完,但不能不拿),最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数nn。第二行包含nn个数字,其中第ii个数字表示第ii堆石子的数量。输出格式如果先手方必胜,则输出Yes。否则,输出No...

2021-09-07 20:28:41 43

原创 台阶--Nim游戏(博弈论)

问题:现在,有一个nn级台阶的楼梯,每级台阶上都有若干个石子,其中第ii级台阶上有aiai个石子(i≥1i≥1)。两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数nn。第二行包含nn个整数,其中第ii个整数表示第ii级台阶上的石子数aiai。输出格式如果先手方必胜,则输出Yes。...

2021-09-07 20:22:37 361

原创 字符串哈希

方法:字符串前缀哈希法。用 h [ ] 存储前缀的哈希值。将字符串转成对应的哈希值:看成p进制的数,例“ ABCD ”“ 1 2 3 4” -> (1*p^3+2*p^2+3*p^1+4*p^0) mod q技巧p:131或1331q:2^64用usinged long long 存储h[ ] , 溢出相当于取模。问题:给定一个长度为nn的字符串,再给定mm个询问,每个询问包含四个整数l1,r1,l2,r2l1,r1,l2,r2,请你判断[l1...

2021-09-04 16:34:52 268

原创 模拟散列表(哈希)

维护一个集合,支持如下几种操作:I x,插入一个数xx; Q x,询问数xx是否在集合中出现过;现在要进行NN次操作,对于每个询问操作输出对应的结果。输入格式第一行包含整数NN,表示操作数量。接下来NN行,每行包含一个操作指令,操作指令为I x,Q x中的一种。输出格式对于每个询问指令Q x,输出一个询问结果,如果xx在集合中出现过,则输出Yes,否则输出No。每个结果占一行。数据范围1≤N≤1051≤N≤105−109≤x≤109...

2021-08-30 22:10:48 39

原创 利用小根堆求前m个最小值

利用的操作:1.建堆2.down()(向下调整)3.删除最小值(h[1]=h[size] ; size--; down(1) );#include<iostream>using namespace std;const int N = 1e5+10;int n,m,sizes;int h[N];void down(int u){ int t=u; if(u*2<=sizes &&h[u*2]<h[t])t=u*2; //有左

2021-08-28 11:19:34 170

原创 单调队列---滑动窗口

给定一个大小为n≤106n≤106的数组。有一个大小为kk的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到kk个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为[1 3 -1 -3 5 3 6 7],kk为33。窗口位置 最小值 最大值 [1 3 -1] -3 5 3 6 7 -1 3 1 [3 -1 -3] 5 3 6 7 -3 3 1 3 [-1 -3 5] 3 6 7 -3 5...

2021-08-27 20:14:34 79

原创 小小应用☞双指针

1.先暴力2.对暴力进行优化 找单调性模板:for ( int i = 0, j = 0 ; i<n ; i++ ){ while ( j < i&&check(i,j)) j++; //每道题目的具体逻辑}可以把O(n^2)降到O(n)应用:找出最长连续不重复子序列1 2 2 3 5 ------- 3(2 3 5)#include<iostream>using namesp...

2021-08-27 18:34:19 35

原创 快速幂 (会及时添加)

.快速幂:a.模运算的规律:( a * b ) % p <=> ( a %p * b % p ) % p;b.求 (a ^ b) % p(经典问题):typedef long long LL;LL POW(LL a,LL b,LL p){int res=1;while(b){ if(b&1)res=res*a%p; / /对“各因数取模后的乘积”res*a再取模a=a*a%p; / /对因数(a*a)取模b=...

2021-07-31 16:06:26 55

原创 你值得拥有的---位运算

1.一些常规的计算:x ^ 0s = x x & 0s = 0 x | 0s = xx ^ 1s = ~x x & 1s = x x | 1s = 1sx ^ x = 0 x & x = x x | x = x^ (异或)----- 相同的为0,相异的为12.位运算实用的技巧(1) x & (x-1)可以消去x中(二进制状态下)的最后一位 1 .(2) 求数组的子集[ 1 , 2 , 3 ]n(元...

2021-07-31 15:15:53 71

原创 哈希表查找一段区间内相同的元素

题目描述给你一个长为N的序列A,有Q次询问。每次询问给出一个区间[L,R],询问AL与AR之间是否存在两个相等的数。输入共Q+2行。第一行,两个整数N,Q。第二行,N个整数A1,A2……An。接下来Q行,每行两个整数L,R。输出对每个询问输出一行,Yes或No.还是超限 主要是记录一下这个方法。#include<bits/stdc++.h>using namespace std;int main(){ int n,q; int a[1000...

2021-07-27 12:28:16 321

原创 前缀和的常规操作

最主要解决数组中子数组和的问题.a.求任意一个区间的和;b.求解有多少个区间的和满足是k的倍数;前缀和往往会用哈希表进行优化实例:leetcode560. 和为K的子数组给定一个整数数组和一个整数k,你需要找到该数组中和为k的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ...

2021-07-26 19:34:56 65

空空如也

空空如也

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

TA关注的人

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