- 博客(9)
- 收藏
- 关注
原创 CCF 202109-4 收集卡牌
题目描述就不需要了吧说下思路:数据范围是1–16 很小,所以考虑到状态压缩dp状态表示:要表示的是概率, 谁的概率?首先是状态,还需要步数决定概率所以数组 f[状态][步数]来表示dp数组状态划分:抽一下卡对于目前的状态有哪些可能性?1.新卡 2.重复了状态计算:新卡:新状态(i|st)的概率 += p(卡)*p(状态)重复:现状态 += p(卡)*p(状态)#include<bits/stdc++.h>using namespace std;const int
2022-03-01 14:03:42
476
原创 图例说明KMP算法
原理(不同形状代表不同字符)这里红箭头方向不匹配(匹配就是 j+1 指的地方和 i 比较,如果相同那么 j ++)当 j 走到 n 就是整段匹配 , 有了 ne后 j+1 不匹配就只需要退一部分了而不是退到开头代码就是for (int i = 1; i <= m; i++) { while (j && s[i] != p[j + 1]) j = nt[j]; if(s[i] == p[j + 1])
2022-02-25 12:19:29
473
原创 直观解释差分的原理
差分是一种快速处理数组大批量同时加减的方法代码写出来就是void insert(int* b, int l, int r,int c){ b[l] += c; b[r + 1] -= c;}
2022-02-25 10:39:51
240
原创 c++ 字符与字符串 常用函数
比较字典序char [] : strcmp ( a,b )string : a.compare(b)如果a字典序更小,则输出-1,更大则1长度char[] : strlen()string : str.length() 或 str.size()赋值char [] : strcpy(a, b)string : a=b转换为整数stoi(“123”) // String TO Int字符大小写与数字判断字母: isalpha // is alpha大写: isupp
2022-02-23 22:23:40
599
原创 sizeof() ,strlen(), length() ,size() 函数的区分
sizeof a 代表物理大小(字节) ( 不能用这个来遍历 )a.size() 表示的是有多少数据 , 给STL用的( 数组只能 sizeof a/sizeof a[0] )这样表达 )strlen(a) 给char[]用的,注意由于不会算上 ‘\0’ 所以比sizeof小 1a.length() 给string用,其实作用与.size() 相同,只是增加可读性...
2022-02-23 13:40:11
419
原创 关于树状数组和线段树区别的 个人理解
刚学了这俩结构,写个文章纪念一下查找线段树通过二分找所有被范围完全包含的组树状数组通过 i - lowbit(i) 向左上角移动原理是负整数的补码特性更新线段树从根寻找叶子,沿途+1树状数组通过 i + lowbit(i) 向右上角移动实现线段树用struct来存储范围(l,r) 和sum , 构成一个二叉树树状数组直接用一个普通数组存储,f[i]代表其子节点与i的和( f[i]的子结点就是lowbit更新时会经过i的节点,直接看不出来)...
2022-02-03 17:42:06
581
原创 一些常用的输入方式
要求在一行输入多个数据方法一#include<sstream> string st; getline(cin, st); stringstream qwe(st); int a[3]; int s = 0; while (qwe) qwe >> a[s++]; 注解:getline(cin,string)是从cin中把一行赋给stringstringstream qwe(st); 是指把st串中的内容赋给qwe流,正好把其中
2022-02-01 21:36:25
601
原创 关于sort自定义的一点记录
主要是想了解下sort的bool operator【写在结构内的排序规则】这个是基本结构bool operator <(const node& as)const{ return a < as.a;}(这里的语义就是重载 ‘<’ 符号, 传入cosnt的被比数 , 然后自己也const)小于< 代表升序 (1,2,3…)大于>代表降序 (3,2,1…)如果要多个判定就:if (a != as.a) return a < as.a;
2021-11-10 14:21:38
235
原创 PTA练习题6-1 Is Topological Order (30分)
PTA练习题6-1 Is Topological Order (30分)题目输入一个有向图,然后输入几组序列 ,判断是否是是否是拓扑序列。这个题是英语的,网上的答案较少,所以这里我也写一个定义// An highlighted blocktypedef struct AdjVNode *PtrToAdjVNode; struct AdjVNode{ Vertex AdjV; PtrToAdjVNode Next;};typedef struct Vnode{ Pt
2021-11-02 21:53:58
1271
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人