自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HyperBeast的博客

成长之路

  • 博客(48)
  • 资源 (5)
  • 收藏
  • 关注

原创 POJ 1182 食物链

环形的关系,A并查集表示同类,B表示x捕食y,C类表示x被y捕食最后,POJ上莫名的多组数据WA,cin会TLE#include <iostream>#include <string>#include <cstdio>#include <cstdlib>using namespace std;typedef long long ...

2018-08-15 14:51:58 210

原创 重要逆序对

普通的逆序对就不详细讲了,此时计数的顺序关系和排序的顺序关系是等价的。而对于重要的逆序对来讲,原来的排序顺序并不能够反应计数的顺序,因此计数与排序的顺序要分开。思想还是与普通逆序对类似。#include <iostream>#include <string>#include <algorithm>#include <cstdio>#...

2018-08-14 18:49:51 1606

原创 Ubuntu 16.04 Cuda 8.0 Opencv 3.1.0 Anaconda2 Caffe 安装

sudo add-apt-repository ppa:graphics-drivers/ppasudo apt-get updatesudo apt-get install nvidia-384sudo apt-get install mesa-common-devsudo apt-get install freeglut3-devnvidia-smisudo sh cuda_8.0

2018-01-23 02:35:26 281

原创 HDU 6198 矩阵快速幂

ans=F(2*i+3)-1#include using namespace std;typedef long long ll;const int maxn=100005;const ll mod=998244353;const int maxm=2;typedef struct Node{ int f[maxm][maxm]; Node(int a=0,int b=0,int

2017-09-18 21:40:25 460

原创 关于尺取法的一些例子

最近做了一些关于尺取法的题,大概明白了一些套路。首先固定左端点,不断地去取右端点,直到区间尽头或者不满足条件,然后判断是否满足条件,如果不满足条件一般情况下是到了尽头,然后去最值,然后删去一个左端点再在新的一个左端点上不断地去取右端点,这样整个算法的复杂度为O(n)POJ 3061 尺取法版本:#include #include #include #include //

2017-09-04 15:05:37 437

原创 POJ 1061 青蛙的约会 一元线性同余方程

两只青蛙如果能碰面则需满足(y-x)+(n-m)*t=0 (mod L),即转化为求解一元线性同余方程(n-m)*t=(x-y) (mod L),直接套模版即可,注意控制解的范围 #include#include#include#include#include using namespace std;typedef long long ll;ll extend_gcd(ll

2017-08-27 21:46:35 307

原创 CodeForces Sorting by Subsequences

·英文题,述大意:      输入一个长度为n的无重复元素的序列{a1,a2……an}(1·分析:      对子序列排序,最终竟然可以使得整个序列都排好序,那么我们可以清晰地发现:每一个子序列排序一定可以将它含有的元素全部放到全序列排序后的对应位置。例如,对于序列{4,1,2,5},它的全序列排序排序结果为{1,2,4,5},那么对于一种可行解:分为子序列{4,1,2}和

2017-08-26 01:35:15 480

原创 2017 多校训练第十场 HDU 6178 Monkeys 最小点覆盖+树形DP

题目大意:给你N个点的一棵树,现在有K只猴子,猴子们不会落单,也就是说,在同一个联通块中,至少有两只猴子。现在我们希望砍尽可能多的边,使得这K只猴子分部在若干个联通块中,使得满足上述条件。输出剩下的最少的边数。思路:这题O(n)做竟然卡读入优化。。。。。。。。。。。。。。。。。。。。。。①很显然,如果我们最终的答案是一个包含K个点的整个联通块

2017-08-25 00:07:41 420

原创 2017 第十场多校训练 HDU 6181 Two Paths 次短路+Dijkstra

/*裸的次短路不断更新v->u的次短路,直到v->u的次短路只比最短路小*/#include #include #include #include using namespace std;#define ll long long#define INF 1e18#define MAXM 100100struct edge{int to;ll w;};typedef pair

2017-08-24 23:24:00 463

原创 2017 多校训练第九场 HDU 6168 Numbers 贪心枚举

因为a数组都是正数,那么根据定义:混合之后的数组中最小的两个数必然是在a数组的,因此先选取这两个数,然后贪心枚举。比赛的时候,没有枚举b数组的数,因此map就自动生成了许多数,造成MLE。现在重写一遍倒是想明白了。AC代码:#include using namespace std;const int mod=1e9+7;const int maxn=150000;int

2017-08-22 22:48:00 312

原创 HDU 5656 CA Loves GCD 枚举GCD+容斥

题意:给你一个数目为n的集合,求这个集合所有非空子集的最大公约数。思路:题目给的数据范围为1到1000,那么这个集合的非空子集的最大公约数必然不超过1000,并且也不超过这个集合的最大值。那么从最大值枚举到1,然后进行容斥即可。AC代码:#include using namespace std;typedef long long ll;const int maxn=1010;

2017-08-14 21:21:36 278

原创 CodeForces round 428 div2 only

A 很简单的贪心#include using namespace std;const int maxn=105;int num[maxn];int main(int argc, char const *argv[]){ int k,n; while(cin>>n>>k){ int sum=0; for(int i=0;i<n;i++){ cin>>num[i];

2017-08-13 10:46:27 268

原创 浅谈博弈--从HDU上几道题学习博弈知识

HDU 2147题目链接代码如下:#include using namespace std;int main(int argc, char const *argv[]){ int n,m; while(~scanf("%d %d",&n,&m)){ if(!n&&!m) break; if((n&1)&&(m&1)){

2017-08-12 19:17:16 407

原创 2016 ACM青岛区域赛题解

A 水题,直接暴力模拟即可。#include #define lson l,m,rt<<1#define rson m+1,r,rt<<1|1const int maxn=40000;typedef long long ll;int main(int argc, char const *argv[]){ int T; scanf("%d",&T); while(T--){

2017-08-11 12:36:05 2267

原创 2017 多校训练第六场 HDU 6097 Mindis

给出一个圆的半径,然后给出两个点P,Q的坐标,都不超出圆而且|OP|=|OQ|,问圆上一点到P和Q的距离之和最小是多少。根据题解写了一份程序,请各位大佬参考#include using namespace std;// #define test TEST int main(int argc, char const *argv[]){ #ifdef test freopen(

2017-08-10 23:40:36 292

原创 2017 多校训练第六场 HDU 6106 Classes

逻辑题根据容斥原理,选课程A的包括选有课程AB,课程AC以及课程ABC的。因此想要求到一个班级最大的人数,那么就是求只选A,B,C,AB,AC,BC,ABC的人数之和。如果有一门课程的人数小于0,那么跳过认为此数据错误,不做处理。#include using namespace std;const int maxn=100005;int a[7];int main(int

2017-08-10 20:38:47 369

原创 2017 多校训练第六场 HDU 6098 Inversion

题意很明显比赛的时候算了一下暴力的话,时间复杂度大概为O(n^2),我写的一个算法只用前缀最大值优化了左边的最值,右边暴力,答案是会T的。幸好队友用一种类似筛法的方法过了,下面是他的算法:#include #include using namespace std;const int maxn=100000+10;int p[maxn];int b[maxn];int m[m

2017-08-10 17:56:39 262

原创 2017 多校训练第五场 HDU 6085

#include using namespace std;const int maxn=50005;unsigned a[maxn],b[maxn],c[maxn];const int mod=2;void setA(int p,int x){ int p1=p/32,p2=p%32; a[p1]|=(1<<p2);}int getB(int p){ in

2017-08-09 15:07:03 328

原创 2017 多校训练第五场 HDU 6092 Rikka with Subset

很多个较小的数字可以随机组合成较大的数字,所以B数组从小到大开始遍历,除了空集,最小的那个存在的个数对应的数字必然是a数组中的数字。每求出这一部分之后,更新后续的B序列。分析完后,主要的难点就是怎么去让已求出来的A序列随机组合,更新后续的B序列直接减就可以了。看成01背包问题,让m为背包去装 i,初始值为dp[0] = 1,由于i依次增大,A子集随机组合不会重复。#include

2017-08-08 21:53:50 420

原创 2017 多校训练第四场 HDU 6069 Counting Divisors

计算每个素数的贡献,对于[l,r]中的大素数另外计算#include using namespace std;// #define test TEST /typedef long long ll;const ll mod=998244353;const ll maxn=1e6+10;bool su[maxn];ll prime[maxn],num[maxn],sum[maxn];

2017-08-07 00:03:08 321

原创 暑假训练随笔

七月的流火好像还在灼烧着上海,八月的微风已稍有显露好吧。。。不扯了。。。现在多校训练已经进行到一小半了,但是自己赛场上做不出来好气,比赛完补题不会更生气,就这样循环往复过了半个暑假了。哎,每个学期开头都是雄心壮志要好好做人,结果到了后面总是难有一个好的结果。想想ACM对我也差不多有了两年了,大一的什么都不会,那个时候的多校自然是无所谓,然而现在马上要大三了,还没有拿到一块牌子。。。

2017-08-04 00:01:34 254

原创 2017 多小训练第三场 HDU 6061 RXD and functions

NTT#include using namespace std;typedef long long ll;const int mod=998244353;const int maxn=4e5+5;const int g=3;ll ni[maxn],fro[maxn],K[maxn],qp[30],F1[maxn],F2[maxn],ans[maxn];int getlen(in

2017-08-03 00:16:39 518

原创 2017 多校训练第三场 HDU 6058 Kanade's sum

未完待续#include using namespace std;typedef long long ll;const ll mod=1e9+7;const ll maxn=5e5+5;int a[maxn],pre[maxn],nxt[maxn],pos[maxn];int main(int argc, char const *argv[]){ int T,n,k; sc

2017-08-02 01:30:42 455

原创 2017 多校训练第三场 HDU 6060 RXD and dividing

考场上被题面的斯坦纳树给吓到了。。。其实这个输入本身就是一个树,那么放在这个题里面就是找一个最小生成树。。。权当是为了理解吧题目的意思是把2到n这些点分成k个部分,根据最小斯坦纳树的定义,(x,fax)这个边的贡献就是x字数内不同标号的个数diff(i),显然diff(i)小于等于min(sz(i),k).通过构造让所有diff取得最大,答案就按照官方题解那样,虽然我也有点不明白。。。

2017-08-01 20:15:58 315

原创 CodeForces Round 427 div2

A题,计算两个人的延迟,比较就好#include using namespace std;const int maxn=1005;int main(int argc, char const *argv[]){ int s,v1,v2,t1,t2; while(cin>>s>>v1>>v2>>t1>>t2){ int ans1=s*v1+2*t1,ans2=s*v2+2*t2;

2017-08-01 19:15:10 312

原创 2017 多校训练第三场 HDU 6066 RXD's date

水题,统计一下输入数据中小于等于35的个数据说出此题是为了吐槽浙江省这几天的温度#include using namespace std;typedef long long LL;int main(int argc, char const *argv[]){ int n; while(cin>>n){ int ans=0,t; fo

2017-08-01 19:12:26 383

原创 2017 多校训练第三场 HDU 6063 RXD and math

打表找规律然后发现是n的k次幂然后快速幂,实现的时候有一些地方会溢出,可以快速乘或者先进行取模运算#include using namespace std;typedef long long ll;const ll mod=1e9+7;ll mul_mod(ll a,ll b){ ll ans=0; while(b){ if(b&1){ ans=(ans+a)%mo

2017-08-01 19:08:36 670

原创 CodeForces #426 div2 C The Meaningless Game

其实很简单,如果正确的话,那么两个数相乘应该是每个书的三次幂。从这个进行入手,开立方根,然后检验是否成立。比赛的时候WA 2 因为要保证a和b都要能够整除这个数然后就WA 3了。。。悲伤辣么大。。。枉费我先开C题的心机TATWA 3是因为我一开始打的表没有考虑 1 1这个特殊情况,输出应为Yes这道题还有一洗比较简单的方法实现,主要就是浮点数四舍五入这么一个地方需要注意:

2017-07-31 11:27:09 293

原创 CodeForces #426 div2 B The Festive Evening

比赛的时候先做的C题,最后三十分钟才看这道题。其实这是一道比较简单的题,只是我当时想复杂了处理一下每个门的开关时间,然后就转化为n条线段中最大重叠线段的数目,可以用贪心策略去解决,与活动安排问题类似,这个思路是对活动结束时间排序。#include using namespace std;typedef long long ll;const int maxn=1e6+6;cha

2017-07-31 11:22:41 226

原创 CodeForces #426 div2 A The Useless Tony

水题,就是我的实现方式有点烦。#include using namespace std;const int maxn=1e3+5;int main(int argc, char const *argv[]){ char a,b; int n; cin>>a>>b>>n; int m=n%4; if(m==0){ printf("undefined\n"); retu

2017-07-31 11:21:20 222

原创 2017 多校训练第二场 HDU 6052 To my boyfriend

#include using namespace std;typedef long long ll;const int maxn=105;int num[maxn][maxn];int n,m;ll cal(int x, int y) { ll res=0; int c=num[x][y],L=1,R=m; for (int i=x;i>=1;i--) {

2017-07-30 20:51:57 412

原创 2017 多校训练第二场 HDU 6053 TrickGCD

#include using namespace std;typedef long long ll;// #define test TEST const int maxn=1e5+5;const int mod=1e9+7;ll num[maxn<<1],a[maxn];ll mu[maxn];void mobius(ll mn){ mu[1]=1; for(ll i=1;i

2017-07-29 00:41:10 376

原创 2017 多校训练第二场 HDU 6050 Funny Function

推公式#include using namespace std;// #define test TEST const int maxn=10005;const int mod=1e9+7;typedef long long ll;ll x,y;ll Quick_Mod(ll a,ll b){ ll ans=1; while(b){ if(b&1LL) ans=((an

2017-07-28 16:47:01 306

原创 2017 多校训练第二场 HDU 6047 Maximum Sequence

这一题真是累死我了,比赛的时候搞了一个树状数组结果TLE,最后还是队友写了一个线段树才过的,不就是树状数组多了一个logn嘛TAT,还有的大佬要是再卡一个常数,线段树可能都过不了TAT等到下来补题的时候,单调队列不懂怎么做TAT,就开始搞线段树,我觉得写得很对啊怎么又错了TAT,好吧换一种写法,看到有一种优先队列的写法,正确性自己想了想就写了,然后交上去还是错的TAT,怎么回事啊啊啊啊啊TAT

2017-07-28 15:19:56 376

原创 POJ 2823 Sliding Window

单调队列实现询问最小值与最大值#include #include #include #include #include using namespace std;const int maxn=1e6+6;int a[maxn],b[maxn],c[maxn],que[maxn],pos[maxn];int n,k;void Get_min(){//单调队列求每连续k个数的最

2017-07-27 23:35:48 242

原创 2017 多校训练第二场 HDU 6045 Is Derek lying?

题目链接:点击打开链接这道题算是一道逻辑判断。对于两个人的答案,我们可以找出相同的个数和不相同的个数。那么对于两人相同的答案,要么情况a:两人都对,要么情况b:两人都错对于两人不同的答案,要么情况c:A对B错,要么情况d:A错B对,要么情况e:两人都错。根据以上情况,我们可以列出等式:a+b=samec+d+e=diffa+c=xa+d=y又

2017-07-27 19:36:36 484

原创 2017 多校训练第二场 HDU 6055 Regular polygon

题意:给出n个坐标点,每个点的坐标都是整数。问这些点能形成多少个正多边形。分析:因为每个点的坐标都是整数,并且要求形成的是正多边形,可以推出只有正方形符合要求。因此就转化为求n个点最多能形成多少个正方形,与POJ 2002相同。拷贝的 POJ 2002代码#include #include #include using namespace std;

2017-07-27 17:17:50 436

原创 C++输入输出外挂

利用fread()函数进行优化,一般用于超大型输入文件比如hdu 6044#include // #define test TEST using namespace std;const int mod=1e9+7;const int maxn=1e6+6;typedef long long ll;namespace IO {#define BUF_SIZE 100000//fre

2017-07-27 11:10:02 834

原创 2017 多校训练第一场 HDU 6044 Limited Permutation

题意:有n个区间,对于第i个区间[li,ri]有li对于任意1题解:首先要理解题意:当前仅当li因此对于P[i]一定有P[i]>P[li-1]且P[i]>P[ri+1],进一步说区间[li,ri](除了[1,n])一定被某个区间[lj,rj]包含,且j=li-1或j=ri+1即区间j可分成[lj,j-1]和[j+1,rj]我们把n个区间按L升序R降序进行排序

2017-07-27 00:19:35 435

原创 求组合数的几种方式

逆元求组合数void init(){ fac[0]=1; for(int i=1;i<maxn;i++){ fac[i]=fac[i-1]*i%mod; } inv[1]=1; for(int i=2;i<maxn;i++){ inv[i]=(mod-mod/i)*inv[mod%i]%mod; } inv[0]=1; for(int i=1;i<maxn;i++){

2017-07-27 00:16:41 437

2017年美国大学生数学建模竞赛O奖论文

加拿大阿尔伯塔大学著名增强学习大师 Richard S. Sutton 教授的经典教材《增强学习导论》(Reinforcement Learning: An Introduction)第二版近期更新,现书稿的草稿在其主页提供,新智元编译图书的目录部分,全书(英文版 draft)可在新智元公众号下载。本书系统性地介绍了增强学习

2018-10-28

经典教材 R.Sutton《增强学习导论》第二版英文原版

加拿大阿尔伯塔大学著名增强学习大师 Richard S. Sutton 教授的经典教材《增强学习导论》(Reinforcement Learning: An Introduction)第二版近期更新,本书系统性地介绍了增强学习。

2018-10-28

2016年美国大学生数学建模O奖论文集

2016年美国大学生数学建模O奖论文集,包含MCM的三道题以及ICM的三道题,没有插入任何广告,准备美赛的话可以学习学习论文的编排和常用的算法套路。

2018-02-01

流畅的Python

英文原版《流畅的Python》,想深入学习Python的可以下载学习一下。

2017-08-01

信息学竞赛国家集训队2017论文集

2017信息学竞赛国家集训队论文

2017-07-31

空空如也

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

TA关注的人

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