整理莫比乌斯反演筛 void pre_calc(int lim){ mu[1]=-1; for (int i=2;i<=lim;i++) { if (!prime_tag[i]) prime_tag[++prime_tot]=i,mu[i]=-1;
void pre_calc(int lim){ memset(prime_tag,true,sizeof(prime_tag)); memset(prime_tot,0,sizeof(prime_tot)); prime_tag[1]=flase; for (int i=2;i<=n;i++
概率初示 #include<cstdio> using namespace std; int main(){ int t;scanf("%d",&t); while(t--){ int a,b,c; scanf("%d%d%d&qu
线段树 map离散化,按照能力值排序建立更新节点,区间查询(单点更新) for (int i=1;i<=n-1;i++) { scanf("%d%d%d",&fa,&peo[i].loty,&peo[i].abty); pe
——《高级数据结构》 操作1: 合并Merge(curBlock,nextBlock) 该操作的目的是将相邻两个块合并。一般当相邻两个块的大小加起来不超过n的1/2的时候需要进行合并操作。这一步将nextBlock合并给curBlock,其伪代码如下: function Merge(curBlo
找一个节点的前驱: int findpre(int x){ int left=leftson[x]; while (righton[left]) left=rightson[left]; return left; } 找一个节点的后继: int findsuc(int x){ int
#include<cstdio> using namespace std; const int maxn=1e5+5; struct edge{ int to,val; }; vector<edge> G[maxn]; int dfn[maxn]; int low[m
树链剖分 改了好几次,发现-1比0跑的快,同时加读入优化可以节省约1000ms。 #include<cstdio> #include<iostream> #include<cstring> using namespace std; const int MAXN=
#include<cstdio> #include<iostream> struct node{ int to,nxt; }e[MAXN<<2]; void addedge(int u,int v){ e[++tot].to=v; nxt[t
代码不规范,调到泪目 保留区间的左端点和右端点权值,以区间左端点为起点的最长递增序列长度 以区间右端点为终点的最长递增序列长度 区间的最大递增序列长度 #include<cstdio> #include<iostream> #define ll long long u
最小生成树 maxn和maxm一定要开大鸭鸭鸭鸭 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int MAXN=1100000; cons
类似数位dp #include<cstdio> #include<cstring> #define LL long long using namespace std; char str[10000]; int n; LL cnt[10000],v[10000]; LL d
我的垃圾数组模拟法 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> using namespace std; int a[1200]; int main
明七暗七 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 今天是个特殊的日子,CSL和他的小伙伴们围坐在一张桌子上玩起了明七暗七的游戏。游戏规则是这样的: 一个人报出一个起始数,接下来按照逆时
今天复习了一下dp, dp实质上是记忆化的搜索,可参考https://blog.csdn.net/baidu_28312631/article/details/47418773 重新理解了一下01背包二维转一维 for(int i=1;i<=n;i++) for(int j=n;j>=
初看还以为是那啥最大闭合子图,然而只是跑一下网络流 #include<bits/stdc++.h> #define inf 0x3f3f3f3f using namespace std; typedef long long ll; const int N=1e5+50; const i
#include<cstdio> int a[51]; using namespace std; int dp[51][3]; int main(){ char s[51]; { scanf("%s",s+1); int len=strlen(s);
自己写的judge函数太丑了,还是错的 //类似滑动窗口 bool judge(int x){ int ans=0;int i;int cnt=0; for (i=1;i<=n;i++) { if(a[i]>=x) cnt++; if (cnt&g
调了很久,出了各种各样的错 #include<cstdio> #include<algorithm> using namespace std; int a[1000000]; int main(){ int n; int mx=0; scanf("%d&qu
test66这个点爆int,要开long long #include<cstdio> int cnt=0; long long a[100000001]; int main(){ int n; scanf("%d",&n); int hea
错误代码 想了一个假算法,WA了 #include<cstdio> #include<algorithm> using namespace std; int n,m; bool check(int x,int y){ if (x==1&&y==1)retu
Message queue is the basic fundamental of windows system. For each process, the system maintains a message queue. If something happens to this process
反向建边,vis记录每条边起点是否在途中,起点从0开始搜索,若按a的路径能走通则走a,反之走b #include<cstdio> #include<cstring> #include<vector> using namespace std; vector<
主席树 超强板子 #include<cstdio> #include<vector> #include<iostream> #include<algorithm> using namespace std; const int maxn=1e5+6
血的教训 #include<cstdio> #include<iostream> #include<vector> #include<cstring> #include<queue> const int inf=0x3f3f3f3f; c
[HEOI2013]EDEN的新背包问题
Problem A First Solved:DeaphetS 构造题。解法非常多。 首先无解是唬你的,不存在无解的情况,可以很容易的证明,这里省去。 解法1 随机。 我们首先按照顺序三个三个分组,发现其中有一些是不满足要求的,于是考虑随机交换。 每次随机选择一组的第二个和另一组的第三个进行
最大闭合子图 #include<cstdio> #include<iostream> #include<cstring> #include<string> #include<queue> using namespace std; type
不懂,搜了一下题解 https://blog.csdn.net/wl16wzl/article/details/81164248 #include<cstdio> #include<iostream> #include<algorithm> #include&l
二叉搜索树 L2-004 这是二叉搜索树吗? (25 分) 一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点, 其左子树中所有结点的键值小于该结点的键值; 其右子树中所有结点的键值大于等于该结点的键值; 其左右子树都是二叉搜索树。 所谓二叉搜索树的“镜像”,即将所有结点的左右子树
监视任务 #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #define lson le,mid,root<<1 #define rson
以为是尼姆博弈,补题后才知道是巴什博奕, 看了题解 1.若n%(m+1)==0 则必输(因为先手) 2.若n>m;则必胜,可取[m,n]; 3.若n<=m(等号不能漏掉),则取m%(n+1),满足巴什博奕的定义 #include<cstdio> using namespac
巴什博奕 //若先手取k,后手总能取m-k+1,使得这一轮组合为(m+1) 所以若满足n%(m+1),则后手必胜 本来想换个读入板子,结果出问题了qaq #include<cstdio> using namespace std; int main(){ int n;int x,y
如果要保证有解 那么,必定存在从每一行选择一个棋子,能够包括每一列。 #include #include #include #include #include #include using namespace std; #define MAX 205 struct Line{ int v,next
下载文件 re题目一直活在hgame的elf世界中,没有反应过来有pyc这种东西。 先打开Ubuntu,-file 用check一下,发现是python文件。 修改后缀pyc.在Ubuntu中是直接添加后缀。 可以看到文件颜色变了。 在线网站反编译python文件。 瓜皮,实在扣不过来了,这些数
人生了无生趣
求最大独立集 #include #include #include #include #include using namespace std; int dx[8]={-1,-2,1,2,-1,-2,1,2}; int dy[8]={-2,-1,-2,-1,2,1,2,1}; struct no
快慢指针 ListNode* fast = head; ListNode* slow = head; while(fast != NULL && fast->next != NULL) { fast=fast->next-&
今天要实现动态画框。 我还是想的太复杂了,没有这个能力,我想用代码自定义view画rect。 导师的办法还是简单易懂,动态改变一个view的位置和大小,今天把这个搞定。 方框的大小和位置都是可以变动的了: 但是问题在于,位置不对。原因大概在mat返回的位置数组和vi
搭建wiki服务器 本文基于centOS7.1系统搭建 登录远程linux 本机实在win10版本下,以管理员身份启动Windows PowerShell 用power shell远程登录centOS ssh root@ip地址 然后输入密码,密码是不可见的,回车登录 登录成功 由于远程
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; bool cmp(int a,int b) { /*扩大两倍两个同类型字母正好差2,中间可以放一个大(小
1. 数字统计 来源:NOIP2010普及组 https://ac.nowcoder.com/acm/contest/238/D 算法:枚举 复杂度: 解题思路: 直接枚举 到 中的每个数,再依次判断每一位是否等于 即可。 C++ 代码: #include <cstdio> #i
扫一扫,把题目装进口袋
扫描二维码,进入QQ群
扫描二维码,关注牛客网公众号