自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 编译器LLVM中添加 errs()语句

LLVM errs语法

2024-04-16 20:15:46 135

原创 vim__实现多行注释

Vim 实现多行注释

2024-04-16 20:08:48 95

原创 2023年CSP-J复赛 (前两题)

2023年CSP-J复赛(前两题)

2023-10-21 22:19:49 276 1

原创 算法设计实验一(分治与递归) 题目二 :寻找第k小的数 (TOP-k 问题)

          参考于:zhi hu 链接     最直接的方法就是直接排序,但是我们仅仅需要第k小的数,并不需要知道每个数在整个数组的相对位置,因此排序O(N*logN)的时间复杂度对这个问题来说就略显奢侈了。     学了O(n)的方法后,发现这种方法有个名字,叫BFPRT算法。参考了上面链接关.

2021-10-21 09:48:45 1813 1

原创 算法设计实验一(分治与递归) 题目四 :金块问题

     老板有一袋金块(共n块,n是2的幂(n≥2)),最优秀的雇员得到其中最重的一块,最差的雇员得到其中最轻的一块。假设有一台比较重量的仪器,希望用最少的比较次数找出最重和最轻的金块。并对自己的程序进行复杂性分析。折半。分治,递归。分别找最小值和最大值。仅供参考#include<bits/stdc++.h>#define ll long long#define db doubleusing namespace std;const

2021-10-20 14:37:09 1531

原创 算法设计实验一(分治与递归) 题目三 :二分搜索

      设a[0:n-1]是一个已排好序的数组。请改写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素的位置i和大于x的最小元素位置j。当搜索元素在数组中时,i和j相同,均为x在数组中的位置。并对自己的程序进行复杂性分析。      二分找到大于等于的 L 的位置,最后,如果L的位置的数字等于下x,直接输出一个L位置的数(x).否则,输出L-1位置和L位置的数(数组中

2021-10-19 21:31:27 807

原创 牛客--卡牌游戏 (概率DP 逆推) P2059

题目链接:卡牌游戏n个人,m张卡牌上有m个数字。庄家随机一张卡牌,数字为X,第X位出局,随后第X位的下一位做庄家,问,每个人最后获胜的概率是多少?约瑟夫环的变形问题,这里每次等概率的抽牌,数字是随机的,dp[i][j]: 还剩i个人时,第j个人获胜的概率 。dp[1][1]=1.0 最后剩下的那个人获胜从游戏的结局向前推,剩i人时,枚举m张卡牌,计算出下一局他的位置(也就是剩i-1人时),累加。我们算的是第j个人获胜的概率,如果刚好抽到他自己出局,忽略。抽到出局的位置temp:1,tem.

2021-10-18 10:21:05 2234

原创 牛客--守卫者的挑战(概率DP,dp[i][j][k])

   题目链接:守卫者的挑战dp[i][j][k] :前 i 次挑战 获胜 j 次,背包容量还剩K的概率由于只需要最后背包容量大于残片的数量,k如果0~~n的话,中间会出现负值,由于n<=200,意味着最多-200。因此 设置一个绝对零点, int pre=n+min(n,k);   //绝对0点可以用正数来描述负多少。由于k可能会很大,但是碎片最多n个,取与n的最小值即可.min(pre+n,k+a[i+1])迭代容量范围:.

2021-10-16 22:05:55 359

原创 对拍程序的写法---四部分

四步:1,数据生成2,AC代码3,WA代码4,测试最后:文件都编译后运行,遇到结果不一致的情况会停下错误的输入样例在data.in中查看1,数据生成#include <bits/stdc++.h>using namespace std;int main(){ srand(time(0)); int n=rand()*rand()%200000; int m=rand()*rand()%200000; printf("%

2021-10-14 23:16:19 284

原创 2021ccpc网络复赛(hdu7131)--Nun Heh Heh Aaaaaaaaaaa

题目链接: Nun Heh Heh Aaaaaaaaaaa给定了字符串 “nunhehheh”,简单dp求出前缀有多少个符合的子序列,后缀有多少个a累加   前缀的序列的个数 * 2^(后缀a的个数-1 )累加时要注意去重,当前的序列数会包含前面一次累加时的个数,因此要保存前一次的序列数,减掉前一次的。取模要小心#include<bits/stdc++.h>#define ll long longusing namespace std;const int .

2021-10-14 22:06:31 392

原创 第23次CSP认证(202109)

第23次CSP认证---202109第一题 :数组推导    (贪心)第二题 :非零段划分   (差分)第三题 :脉冲神经网络第四题 :收集卡牌第一题 :数组推导    (贪心)贪心循环一遍在这里插入代码片第二题 :非零段划分   (差分)70分做法:暴力,枚举 出现过的数字。#include<bits/stdc++.h>#include<iostream>#define ll long long

2021-09-30 13:02:08 3286 7

原创 第几个幸运数(筛选)

第几个幸运数Core :小于59084709587505这个数的个数并不多,所以我们可以暴力的求出所有小于59084709587505这个数的所有的幸运数,它是第多少个就一目了然了。那如何筛选出小于等于这个数的所有幸运数呢?      定义一个优先队列(可以自动排序,logN的复杂度。队首可以是最小值,最大值,还可以自定义排序)。初始的时候队列里有3,5,7。每次取出一个当前队列中的最小值,并存放到另一个空间vector中。每次这个最小值分

2021-09-29 11:23:42 367

原创 线段树 (lazy标记)--- 模板

线段树A:建树B:单点更新C:区间查询D:区间更新 (lazy标记)每次并不断的分,不断的分,更新,查询 的操作都是 log(N)。A:建树const int maxx=100019;int a[maxx],tree[maxx*4];void build(int node,int start,int endd) //build(0,1,10) 从0开始建树。start,endd 是实际的数组的下标范围{ if(start==endd) //到达叶子节点 { t

2021-09-18 17:08:10 490

原创 树状数组 -- 理解与模板

树状数组A:简述B:单点修改,建树C:查询D:模板题A:简述/****************单点修改,前缀和,区间和核心:巧妙的运用了类似二分的思想对数组进行了 按位的划分与关联*****************/注意二进制中的1的位置和包含关系。最低为的1的位置决定了这个数组下含多少个点(1000 : 包含8个(2^(4-1) );;11100:包含4个(2^(3-1))) (图片来源于网络)B:单点修改,建树******* 注意:不能使用0位置,由于0加0一直0,会死循环。***

2021-09-17 23:46:35 313

原创 字串和子序列的区别

字串和子序列的区别  子串:     Substring           必须连续 !!!子序列: Subsequence         不必连续 !!!(可以连续可以不连续)    读题的时候注意是 Substring 还是 Subsequence !!!例:      &

2021-09-17 11:22:53 529

原创 hdu -- 1686 Oulipo (简单Hash,(操作字符))

简单哈希–操作字符串      题目链接:  HDU 1686 Oulipo题意:给你两个字符串str1,str2.问:str1在str2中出现了多少次?实际上这一题是KMP的简单的模板题。这里用hash同样可以更加简单的解决Hash的三个步骤:1,初始化 ( init() )2,建哈希 ( make_hash() )3,取哈希 ( get_hash() )/******* Q:代码里为什么没有取模?****** A

2021-09-17 10:24:24 327

原创 牛客--列一列 ( 简单Hash,(操作数字) )

列一列(哈希思想)题目链接:列一列给定 一个类似斐波那契的数列的前100000项的具体结果 ( 注意是结果,不是第多少项求结果),让你判断给定的这个结果是这个数列的第多少项。(输入太大要以字符串的形式输入后再进行处理))由于早已经超long long,利用Hash的思想,取模后保存结果,后面遍历验证这里使用了3个质数取模来共同验证,比较保险。实测一个1000000009也可以过#include<bits/stdc++.h>#define ull unsigned long lo

2021-09-16 17:53:19 175

原创 堆优化 dijkstra

堆优化 dijkstradijkstra 模板题      hdu 254: https://acm.hdu.edu.cn/showproblem.php?pid=2544#include<bits/stdc++.h>#define ll long long#define inf 0x3f3f3f3f#define P pair<int,int>using namespace std;const int maxx=100019;

2021-09-15 23:43:01 349

原创 优先队列(priority_queue)--自定义排序

优先队列--自定义排序A: 默认排序B: 自定义排序       方法一: 运算符重载       方法二: 重写仿函数A: 默认排序1,priority_queue< int > a;     // 基础类型, 默认是大顶堆,自动排2,priority_queue<int, vector< int &g

2021-09-15 23:23:02 4561

原创 自定义map排序---Key,Value

A:对key值排序B:对value值排序C:迭代器,输出A: 对key值排序1,   常用类型如 int, string 等,可自动对Key值排序map<int,double,less< int > > mp;    //按int升序map<int,double,greater< int > > mp;    //按int降序map<string,i

2021-09-15 15:40:53 180

原创 2020河南CCPC--E 发通知(离散化+差分)

E-发通知       题目链接:发通知注意注意注意:要对右端点+1后进行离散!要对右端点+1后进行离散!     为什么?     对右端点+1后进行离散,则该点在数轴上的表示就是空心点(相当于差分的右端点+1,逆操作)。这样,就能解决由于差分造成的中间点丢失的情况。那丢点的情况是怎样的?(pictures by myself)A 图, 初始下

2021-09-09 20:42:29 879 2

原创 牛客---出题人的手环 (离散化 + 树状数组 求逆序对数)

出题人的手环       题目链接:  出题人的手环树状数组求逆序对数将尾部的数拿到首部后,逆序对数的变化=原逆序对数+比它小的数的个数–比它大的数的个数注意:         1, 减完之后可能会出现负数,要加mod后取模。        &

2021-09-08 19:04:23 313

原创 树状数组--求逆序对数

树状数组–求逆序对数借助树状数组的前缀和 来表示出有多少个数比待处理数小。所处位置的下标减去它前面小于等于它的个数,就求得它前面有多少个比它大的数的个数例: 5        4  2  3  1  5更新一个数,处理一个,ans=0;第一步:4           &n

2021-09-08 17:11:52 212 1

原创 牛客 -- 小M和天平(简单dp)

小M和天平题目链接:https://ac.nowcoder.com/acm/problem/13586问:给你n个砝码,你是否能称出来重量为k的物品。问题类似于21年蓝桥杯的 “砝码称重” 这个题,一个问重量为k能不能称出来,一个问能称出来多少个不同的重量k设dp[i][j] ,表示前i个砝码能否称出重量为j的物品( 0 or 1 ),注意初始化类似于背包,第i个物品,选或不选。#include<bits/stdc++.h>#define ll long longusing

2021-09-07 15:52:21 424

空空如也

空空如也

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

TA关注的人

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