BZOJ 3994: [SDOI2015]约数个数和
参考博客:bzoj3994/洛谷P3327 莫比乌斯反演
代码:
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long ll;
const int maxn=50000+100;
ll F[maxn]; //F[i] 表示i的约数个数
int num[maxn]...
HDU 6194:string string string
参考博客:HDU 6194 string string string (2017沈阳网赛-后缀数组)
题意:
告诉你一个字符串和k , 求这个字符串中有多少不同的子串恰好出现了k 次。
思路:
后缀数组。
我们先考虑至少出现k 次的子串, 所以我们枚举排好序的后缀i (sa[i]) 。
k段k 段的枚举。
假设当前枚举的是 sa[i]~sa[i + k -1]
那么假设这一段的最长...
牛客练习赛9 F:珂朵莉的约数
题目传送门
参考博客:牛客练习赛9 F - 珂朵莉的约数
我和该博主一样的地方:写莫队的时候发现了曾经没有注意到的事情,就是要先进行add,然后进行delete。尴尬。。。
inv[0]=inv[1]==1,多写了一个等号,害我查了一天的bug,以为是莫队或者质因数分解写错了,一段一段的进行测试,发现都没错。。。可怕的等号。
代码:
#include<bits/stdc++.h&g...
Wannafly挑战赛7 E:珂朵莉与GCD
题目传送门
树状数组可解
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=100000+100;
const ll mod=1e9+7;
struct Node{
int l,r;
int id;
}node[maxn];
ll ans...
HDU 6333 2018 Multi-University Training Contest 4 :Problem B. Harvest of Apples
莫队很简单
只要找到递推式就好办,递推式:T(n+1,m)=2*T(n,m)-C(n,m)
T(n,m)=C(n,0)+C(n,1)+C(n,2)+…+C(n,m)
再根据C(n+1,m)=C(n,m)+C(n,m-1)可得到递推式
代码:
#include<cstdio>
#include<cmath>
#include<algorithm>
...
使用电脑的时候总是死机是什么原因
在办公室,大家一般都遇到过自己或者同事的电脑死机过,这也是一种见怪不怪的事情了,话又说回来了,造成电脑死机的原因是什么?应该如何避免这种情况的发生呢?好系统重装助手针对这一问题来为大家分析一下原因。引起电脑死机的原因,大体上来讲,无非就是两大种:硬件和软件。硬件原因最常见的就是散热问题,时间长了,机箱里进灰尘,导致机箱温度不能及时扩散而运行不稳定,建议经常清理机箱灰尘;还有就是硬件设备的不兼容,不
牛客练习赛10 E:数列查找
莫队
将出现次数进行分块,再将出现次数的值进行分块
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=40000+100;
int ans[maxn];
int num[maxn];
int cnt[maxn];
int n,m;
int R[maxn];
int Rc[210],Rcnum[max...
Wannafly挑战赛8 D :Alice和Bob赌糖果
这种概率题不是很会做,收集一下板子
赌徒破产模型
#include<bits/stdc++.h>
using namespace std;
const int maxn=200000+100;
double val[maxn];
/* 模版 p的概率往右移一格,从 n 走到 end 的概率*/
double Cal(double p,int n,int end){
...
Wannafly挑战赛8 C :小C打比赛
状态压缩+概率DP
#include<bits/stdc++.h>
using namespace std;
double p[7][181];
double dp[1<<6][181];
int main(){
int n,m;
while(scanf("%d%d",&n,&m)==2){
fo
牛客练习赛11 E :求最值
分治思想
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=100000+100;
struct Node{
ll id,sum;
}node[maxn];
int tmp[maxn];
inline bool cmp(int a,int b){...
Wannafly挑战赛10 C:小H和游戏
题目传送门
首先我们把无根树变成有根树
一个点的受损次数来自于:
1.父亲的父亲结点的贡献
2.父亲结点的贡献
3.兄弟结点的贡献
4.孩子结点的贡献
具体看代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=750000+100;
vector<int>G[maxn];
int...
Wannafly挑战赛10 D:小H的询问(线段树区间合并)
题目传送门
线段树区间合并模板题
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=100000+100;
/*
lm:从 l 位置开始的最大的有效子区间的权值和
rm:以 r 位置结束的最大的有效子区间的权值和
m: 区间[l,r]的最大的有效子区间...
牛客练习赛14 B:区间的连续段(倍增打表)
题目传送门
dp[i][j]表示从位置 i 开始分 2^j 段的 结束点+1的位置
再进行倍增打表即可,具体看代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1000000+100;
int dp[maxn][25];
ll sum[maxn];
int...
Wannafly挑战赛21 C:大水题
思路很简单
直接上代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=300000+100;
ll ans[maxn],val[maxn],sum[maxn],dp[maxn];
map<int,ll>M;
int main(){
i...
父子进程对静态变量的操作不会相互影响
一.一个进程被操作系统调入到内存中运行,其对应的进程在内存中分为代码区,数据区,堆区和栈区
1.数据区:存放全局,静态和常量
2.栈区:主要用于存放局部变量,传递参数,存放函数的返回地址
3.堆区:用户存放动态分配的对象,当你使用malloc饥饿new等进行分配的时候,所得到的空间就在堆区中
二.fork之后,子进程会拷贝父进程的数据空间,堆和栈空间,所以子进程中修改变量(全局变量
今日推荐
周排行