自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 codeforces 1161D Palindrome XOR

题意:给你一个01串s,问存在多少种数对&lt;a,b&gt;&lt;a,b&gt;<a,b>,使得a⊕b=sa \oplus b=sa⊕b=s。需满足a和b都是回文串,并且a和b的len&lt;nlen&lt;nlen<n。数据保证s的开头是1,若s[i]=?s[i]=?s[i]=?则该位置既可以是1,又可以使0。题解:思路...

2019-08-18 20:56:54 274

原创 codeforces 618F Double Knapsack

题意:给你两个长度为n的序列,在两个序列中分别找出一个子集,使这两个子集的总和相等。输出方案。思路:大概,这个题很多条件都是用来搞事的。比如,输出-1就很有迷惑性,事实上这题并不可能无解。而且,如果子序列改为子段的话,会更好想一些。总之,这道题的思维性很强。我们可以维护两个前缀和数组sa[n],sb[n]sa[n],sb[n]sa[n],sb[n],分别代表两个序列的前缀和。序列a中子段的和...

2019-08-17 13:04:31 251

原创 2019 牛客第八场 J - Just Jump

思路来自:https://blog.csdn.net/jk_chen_acmer/article/details/99092788题意:长度为L的路,每一步至少走d步,求从0恰好走到L的方案数。限制条件,有m次attack,每一次attack会在ti的时间攻击pi,也就是第ti步不能走到pi位置。思路:先考虑没有限制条件的情况。令f[i]f[i]f[i]表示到第i个位置的方案数。则f[i...

2019-08-15 14:24:44 175

原创 HDU 1402

FFT模板题。C++FFT实现:#include <bits/stdc++.h>using namespace std;#define ll long long#define ld long double#define ull unsigned long long#define __ ios::sync_with_stdio(0);cin.tie(0);cout.ti...

2019-08-14 12:53:27 149

原创 组合数学(实时更新)

文章目录1. 盒子放小球问题1.1 n个小球有区别,m个盒子有区别1.2 n个小球有区别,m个盒子无区别1.3 n个小球无区别,m个盒子有区别1. 盒子放小球问题n个小球,m个盒子。1.1 n个小球有区别,m个盒子有区别(1)允许空盒:每个球放到任意盒子里,总方案数mnm^nmn。(2)不允许空盒:需满足n≥m≥1n \geq m\geq 1n≥m≥1 ,m&gt;nm&...

2019-08-12 22:26:28 693

原创 Gym​ ​ 101908-K Kepler

题意给你n个圆,这n个圆都包含点(0,0)。求这n个圆交点的个数。保证不存在一个点被三个圆所交。大于2n个交点输出“greater”。思路数据出的比较水。O(n^2)枚举再加一些剪枝是可以过掉的,但很容易被卡掉。比如出一组150000个同心圆,每两个圆的半径差值为0.001。思路来自 black_horse2014,代码code 43676730。所有圆都包含点(0,0),因此可以将圆按...

2019-08-12 21:37:06 290

原创 HDU - 6239 Interview (古典概型)

problem link:http://acm.hdu.edu.cn/showproblem.php?pid=6239题意Alice和Bob去面试。参加面试的人共有n个,面试官会将前K(0<=K)个人,分到第1天,后n-K个人分到第二天。已知Alice在第二天,现给出Bob所在第几天。Alice是第二天第x个面试的,求x的数学期望。思路列出n=3 d=2 的所有情况(样例):假设A...

2019-08-12 01:06:42 433 1

原创 LightOJ - 1395

题意在你的面前有n个门,通过有的门在si的时间后走出迷宫,有的门会在si的时间后返回原地。你可以记住你之前走过的k个门,在下一次选择的时候不选那些走不出去的门。求走出迷宫的期望时间。思路概率dp。定义f[i]为已经记住了i个门之后的期望剩余时间。定义s1表示所有能够走出的门的花费时间的总和,s2表示所有走不出去的门的时间总和,s为走不出去的门的数量。f[k]=s1n−k+s−ks∗s2+...

2019-08-03 22:02:46 318

原创 LightOJ - 1284

题意三维空间中任选两点,将两点间的开关按下。进行k次选点,问最终闭合开关的个数的期望。思路令f[i]表示选i次点后,该点被按了奇数次的期望,g[i]表示选i次点后,该点被按了偶数次的期望。最终结果就是∑x,y,zf[k]\sum_{{x,y,z}}{f[k]}x,y,z∑​f[k] f[i]和g[i]的递推式如下:{f[i]=p∗g[i−1]+(i−p)∗f[i−1]g[i]=p∗f[...

2019-08-03 18:15:34 304

原创 POJ 1830

求亦或的高斯消元。代码:#include <bits/stdc++.h>using namespace std;#define ll long long#define ld long double#define ull unsigned long long#define __ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)...

2019-08-01 21:51:19 186

原创 LightOJ - 1408

题意:一个人在击球,有p的概率集中,有(1-p)的概率击不中。如果能够连续击中x次将停止,连续不集中y次也将停止。问最终停止击球时击球次数的期望。思路:设f[i]代表连续击中i次之后距离结束还剩的期望步数。g[i]代表连续不集中i次后距离结束的期望步数。可以列出下列方程:{f[i]=p∗f[i+1]+(1−p)∗g[1]+1g[i]=(1−p)∗g[i+1]+p∗f[1]+1\left\{...

2019-08-01 20:57:46 426

原创 LightOJ - 1151

概率dp。to[i]代表第i个位置可以到的位置,初始to[i] = i。f[i]={f[to[i]],to[i]≠i∑j=1616∗f[i+j],to[i]=if[i]=\left\{\begin{aligned}&amp;f[to[i]],to[i]=\not i \\&amp;\sum_{j=1}^{6}\frac{1}{6} *f[i+j],to[i]=i\end...

2019-07-29 22:21:14 267

原创 CodeForces 55D

数位dp。定义f[i][j][k]表示i位数,各数位的最小公倍数为j,数字%2520的数为k。这样可以进行dfs求解。不过j取为2520会MLE,需要进行离散化。代码:#include <bits/stdc++.h>using namespace std;#define ll long long#define ull unsigned long long#define...

2019-07-27 17:03:43 147

原创 nlogn LIS

主要思想是维护一个b数组。b[i]代表长度为i的LIS的最后一位最小为b[i]。因此b[i]满足单调性,可以进行二分。代码(java):import java.io.*;import java.lang.reflect.Array;import java.rmi.*;import java.util.*;import java.math.*;import java.lang.*;i...

2019-07-27 15:20:20 365

原创 HDU 4352(LIS+数位dp)

数位dp基础题。思路来自kuangbin。代码:#include <bits/stdc++.h>using namespace std;#define ll long long#define ull unsigned long long#define __ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)const in...

2019-07-27 15:17:58 211

原创 矩阵快速幂变形

题意:给你一个n×n的邻接矩阵,以及给定整数k。求出图中所有经过边数为k的最短路径以及边数为k的最短路径条数。思路:边数为k的路径条数直接用矩阵快速幂求得。更新最短路的过程中随即更新即可。代码:#include <bits/stdc++.h>using namespace std;#define ll long long#define ull unsigned long...

2019-07-24 10:30:07 191

原创 HDU 5236 Article

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=5236题意:打印一篇论文需要按键n次,在每i+0.1秒时打,在第i+0.9秒时有p的概率系统崩溃,崩溃后需要回退到开头或上次保存的地方重新开始。可以选择在第i秒时按下x个键保存,打完所有之后也需要保存一次。求打印整篇文章需要按键的个数的期望。提供一组数据:input:107 0.27 318...

2019-05-20 17:27:38 202

原创 HDU - 1709 The Balance

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1709题意:给你n个砝码和一个天平,问在区间[1,s]中,有多少质量是无法称出的。砝码既可以放在天平左边,也可以放在右边。由于每个砝码只能用一次,不考虑砝码放在左侧的情况的话,生成函数可以这样写:(1+x^a1)*(1+x^a2)*...*(1+x^an)这样得到的结果中,x^k前...

2019-04-25 16:05:33 196

原创 HDU - 1398 Square Coins

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1398母函数题目。构造生成函数:(1+x+x^2+x^3+...+x^n)*(1+x^4+x^8+...)*(1+x^9+x^18+...)*...*(1+x^n)求取其中x^n的系数即可。代码:#include <bits/stdc++.h>using na...

2019-04-25 14:53:07 138

原创 HDU - 1028 Ignatius and the Princess III

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1028母函数基本题型。问题可以转化为:有n个重量为1g的砝码,n/2个重量为2g的砝码,...,1个重量为ng的砝码,问称取ng的物品有多少种放砝码的方法。生成函数建立:(1+x+x^2+x^3+...+x^n)*(1+x^2+x^4+...+x^n)*...*(1+x^...

2019-04-25 14:40:58 134

原创 codeforces 463D - Gargari and Permutations

题目来源:http://codeforces.com/problemset/problem/463/D题意:给你k(k<=5)个串,每个串的长度为n,且是1~n的全排列,求这k个串的最长公共子序列。思路:对于1~n中的任意数i和j,如果在所有k个串中,均满足i的顺序在j前面,我们可以记作i->j。最长公共子序列即是找一条最长的路径,满足a1->a2->a3->...

2019-04-07 19:11:31 255

原创 POJ - 2279 Mr.Young's Picture Permutations(dp做法)

题目来源:http://poj.org/problem?id=2279由于总排数不超过5,且每一排的人数最多为30,可以考虑令f[a1][a2][a3][a4][a5]表示第i排站ai个人的方案数。边界条件是f[0][0][0][0][0] = 1。分别考虑依照身高从大到小的顺序向每一排安放,这样每次只能安放在某一排的最后一个位置,而且这一排的人数要少于之前一排的人数。因此,对于状...

2019-04-05 20:37:36 295

原创 POJ - 1737 Connected Graph

题目来源:http://poj.org/problem?id=1737设f[n]表示n个点的连通图的个数。可以考虑n个点组成的所有图的总方案数减去不连通的方案数得到最终结果。总方案数为2^n*(n-1)/2。不连通的方案数: 考虑1号节点所处的联通块的节点个数,假设当前连通块内节点个数为k,那么该联通块的组成情况可能有f[k]*c[n-1][k-1]种,c表示组合数。其余节点共有...

2019-03-23 19:53:51 240

原创 ZOJ 3711 Give Me Your Hand

题目来源:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3711思路来自:https://blog.csdn.net/ck_boss/article/details/40782161f[101][4][101][101]分别表示[第i次开关门][a b是否在房间内][a持续在房间内的时间][剩余手的数量]其中,...

2019-03-02 13:44:10 174

原创 HDU - 6185 Covering

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=6185思路来自:https://blog.csdn.net/elbadaernu/article/details/77825979对于每个f[i],大致可以分成5种情况进行转移。推导式子的过程如下:/* 1. 1000 1000 2000 2000 f[i-1] 2. ...

2019-02-28 12:39:40 209

原创 codeforces - 1117D Magic Gems

题目来源:http://codeforces.com/problemset/problem/1117/D令f[i]表示到i的方案数,则可以转移f[i] = f[i-1] + f[i-m]。这样可以建一个m×m的矩阵进行转移。代码:#include &lt;bits/stdc++.h&gt;#define ll long long#define __ ios::sync_wi...

2019-02-27 15:34:39 442

原创 HDU - 6183 Color it

题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=6183思路来自:https://blog.csdn.net/jinglinxiao/article/details/77822234对于每次查询,可以依次枚举所有颜色,查看该种颜色是否在所查询的矩形内,统计所有出现的颜色的个数。考虑到每次查询的矩形都是贴着y轴的,这样只需要知道y轴该区间内是...

2019-02-27 15:25:14 283

原创 Gym 100134L - Labyrinth of the Minotaur

题目来源:http://codeforces.com/gym/100134/attachments题意:给一个迷宫,问是否存在一种方案,可以用一个正方形块,堵住从左上到右下的所有路径,输出坐标及正方形边长。 考虑到从起点到终点的方案可能会有很多,但可以确定所有路径集合的左右边界。而左右边界通常就是左手路径与右手路径。关于左右手路径可以参考POJ 3083。如果一个正方形既能够封...

2019-02-18 22:44:53 273

原创 codeforces - 1066F Yet another 2D Walking

题目来源:http://codeforces.com/contest/1066/problem/F由于所有需要走的节点是一层一层的,而且必须走完一层才能走下一层,所以可以转成按层次转移的dp问题。每一层的节点按照从左往右排序,最后一列的元素按照从上往下排序,这样每一层的节点都是有序排列的。每一层的起始位置可以是该层的开头,也可以是该层的最后一个元素。该层开始位置可以从上一层的开头转移过...

2019-02-16 17:02:09 371

原创 codeforces - 1114F Please, another Queries on Array?

题目来源:http://codeforces.com/contest/1114/problem/F题意:给定一个序列c,给定两种操作(1)对区间[l,r]中所有元素*x。(2)查询区间[l,r]中所有元素成积的欧拉函数值。数组c的所有元素均&lt;300,每次乘操作的x也均&lt;300。可以预先得知,300以内的素数共有62个,可以预先保存到数组中。求取区间内所有数的...

2019-02-15 12:35:05 314

原创 codeforces - 1114D Flood Fill

题目来源:https://codeforces.com/contest/1114/problem/D区间dp。首先明确要选定一个点为起点,每次只修改这个点的颜色,让所有点的颜色都相同。例如:51 9 1 4 1结果应该是3而不是2。这样,可以考虑对于每个区间,要么转成该区间左端点的颜色,要么是右端点的颜色。令f[i][j][0]表示区间[l,r]转成左端点的颜色的最小...

2019-02-13 12:21:38 555

原创 POJ1845 Sumdiv (Java)

题目来源:http://poj.org/problem?id=1845题目链接(百练):http://bailian.openjudge.cn/practice/1845/  思路来自:https://blog.csdn.net/lyy289065406/article/details/6648539注意A,B均是&gt;=0的数,故应对A或B为0的时候进行特判。 代码...

2019-02-08 18:17:45 250

原创 POJ 2288 Islands and Bridges (Java实现)

题目来源:http://poj.org/problem?id=2288状压dp。f[i][j][k]表示状态为i时,上一条边为(j,k),这样记录了路径上之前两个结点的信息,就能进行修改。注意特判n==1的情况,最终结果应该/2。转移的过程中记录满足要求的路径数,当且仅当当前状态可以到达时再用其进行状态转移。代码:import java.io.*;import java.l...

2018-12-24 23:41:15 266

原创 POJ 1753 Flip Game Java实现版(利用队列实现bfs过程)

C++实现:https://blog.csdn.net/moon_sky1999/article/details/75127657Java代码:import java.io.*;import java.math.*;import java.util.*;public class Main { static int dx[] = {1, -1, 0, 0}; ...

2018-12-10 15:52:09 335

原创 Java学习(三)(大整数BigInteger)

import java.io.*;import java.util.*;import java.math.*;public class Main { public static void main(String args[]) { Scanner cin = new Scanner(System.in); BigInteger a, b; ...

2018-12-10 15:50:52 343

原创 Java学习(一)(变量 语句)

import java.util.*;import java.math.*;public class Main { public static void main(String[] args) { String 例子 = "Hello world!"; System.out.println(例子); }}//values/* *...

2018-12-10 15:47:49 205

原创 二叉树

抽象类binaryTree.h:#pragma once#include &lt;iostream&gt;template&lt;class T&gt;class binaryTree {public: virtual ~binaryTree() {} virtual bool empty() const = 0; virtual int size()...

2018-12-10 15:44:56 158

原创 散列表

抽象类dictionary.h:#pragma once#include &lt;iostream&gt;#include &lt;utility&gt;template&lt;class K, class E&gt;class dictionary {public: virtual ~dictionary() {} virtual bool empty() ...

2018-12-10 15:41:52 158

原创 队列(链表实现)

外接线性表(链表实现)#pragma once#include "chain.h"template&lt;class T&gt;class queue {public: virtual ~queue() {} virtual bool empty() const = 0; virtual int size() const = 0; virtu...

2018-11-12 21:16:09 168

原创 栈(数组实现)

外接线性表(数组实现)。#pragma once#include "arrayList.h"template&lt;class T&gt;class stack {public: virtual ~stack() {} virtual bool empty() const = 0; virtual int size() const = 0; ...

2018-11-12 21:15:10 190

空空如也

空空如也

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

TA关注的人

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