自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ACM-ICPC 2015 Shenyang Preliminary Contest - J. Jesus Is Here (递推)

 http://acm.hdu.edu.cn/showproblem.php?pid=5459 POINT:f(n)=f(n-2)+f(n-1).答案是n-2的数量和n-1的数量。和他们互相的贡献主要是算互相的贡献。pre:每个C到字符串最左边的和。suf:每个C到字符串最右边的和。num:C的数量len:字符串长度。看代码很好理解。 #inc...

2018-07-31 22:24:29 273

原创 HDU 5451- Best Solver (数论)

http://acm.hdu.edu.cn/showproblem.php?pid=5451 共轭知识:设C(n)=(a+sqrt(b))^n当a^2<b的时候有:C(n+1)=2*a*C(n)-(a*a-b)*C(n-1).C(n)是(a+sqrt(b))^n 向上取整形式。这题是向下取整。减1就行了。有了递推公式,只要求循环节就行了。因为mod很小。 ...

2018-07-31 22:13:14 199

原创 2018 Multi-University Training Contest 3 - Problem C. Dynamic Graph Matching (状压DP)

 http://acm.hdu.edu.cn/showproblem.php?pid=6321 POINT:其实这题很简单。匹配的点状压就行了。然后DP就是最基本的背包差不多。加一条边,就是加一对匹配的点。u,v。状态包含1<<u和1<<v的dp[x]+=dp[x-1<<u-1<<v]就行了。减的话差不多,就-=。...

2018-07-31 22:10:19 134

原创 2018 Multi-University Training Contest 3 - Problem A. Ascending Rating (单调队列)

http://acm.hdu.edu.cn/showproblem.php?pid=6319 题意:太长了。POINT:倒着用单调队列求窗口最大值,并且这样队列里的元素个数就是count值。o(n)扫一遍就可以了。 比赛中也差不多,但是我是顺着扫的,所以用了单调栈o(n)处理了每个元素到最后的最长上升子序列。但是单调队列的窗口长度写成了k,wa到了最后。sad,犯了...

2018-07-30 21:49:23 244

原创 牛客网暑期ACM多校训练营(第四场) - J Hash Function (并查集)

https://www.nowcoder.com/acm/contest/142/J 题意:给你一个n,和n个空位。如果你得到一个x,就把x填在x%n这个位子。如果x%n被填了,就到(x+1)%n,反复。现在给你n个已经被填好的位子。让你求出字典序最小的入座次序。 POINT:用一个优先队列。如果序列里的x的位子就是x%n,证明这个数是最开始就放好的。加入优先队列。...

2018-07-30 21:42:44 288

原创 hiho一下 第213周 - A Boarding Passes (基础图论)

https://hihocoder.com/contest/hiho213/problem/1被一道图论水题教育了一番。 题意:给你n个a到b的单向路。问你起点和终点分别是什么。 POINT:乍一看起点就是入度为0,终点出度为0。其实不然。题目并没有保证不走重复的点。所以起点应该是出度-入度=1的点,终点是入度-出度=1的点。题目保证有解,所以起点不会在一个...

2018-07-29 18:17:14 259

原创 hihoCoder 编程练习赛70 - D 神奇的序列 (构造矩阵)

https://hihocoder.com/contest/offers70/problem/4POINT:就是一道比较简单的构造矩阵的问题。然后用矩阵快速幂来算答案。思路是把一个1*n的矩阵{a1,a2,a3,a4,an} 右乘一个n*n的矩阵 变为{a2,a3,a4,,a5,an+1}。构造这个矩阵就很简单了。这题在赛中数据有错,睡了一觉上去看AC了。应该重判了。也只能...

2018-07-29 17:57:56 420 2

原创 hihoCoder 编程练习赛70 - C拼三角形(状压DP)

https://hihocoder.com/contest/offers70/problem/3 POINT:C(15,3)的效率把可以组合成三角形的3元组都找出来。状压一下。 然后就是一个背包问题了。当状压i&三元组=0的时候就说明这个三元组的三条边都没有被用。 #include <iostream>#include <string.h&...

2018-07-29 17:52:25 380

原创 牛客网暑期ACM多校训练营(第四场) - A Ternary String (欧拉函数降幂)

设前面经过t秒才到这个s[i].那么删这个数(和他的生产物)有这个规律0: t+11: 2*(t+1)2: 3*(2^(t+1)-1)虽然找到了规律,可以用递推的方法求出答案。但是答案一下成为幂,但是一下又要对1e9+7取模。所以只能用欧拉函数降幂做。我们可以利用欧拉函数phi()的性质。对于a,c互质成立。 对于a,c不互质的情况。用广义欧拉定理:对于...

2018-07-29 00:25:56 263

原创 BZOJ 3884 - 上帝与集合的正确用法(欧拉定理)

题解 #include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <vector>using namespace std;#define LL long longconst LL mod = 998244353...

2018-07-29 00:10:04 270

原创 牛客练习赛23 - F 托米的游戏(期望)

https://www.nowcoder.com/acm/contest/156/F 注意到轮数的期望就是每个点被选中的概率之和,熟悉概率与期望定义的同学很 容易看出,这样就是说这个点要在他到根的路径上的点集中第一次选中(不然他 就被砍掉了)这个概率是 1/dep[i], dfs 后算下 1/dep[i]的总和即可 #include <cstdio>#includ...

2018-07-29 00:07:12 276 1

原创 牛客练习赛23 - C 托米的位运算

 https://www.nowcoder.com/acm/contest/156/CPOINT:首先明确,题目是让我们从n个数中挑出k个数,他们&上之后的lowbit最大。在lowbit最大的前提下,k最大。 遍历答案v,即lowbit=2^v。for循环遍历数组,若在第v位存在1(二进制),我们则肯定取这个数。因为最后k个数一起&后,如果存在答案,肯...

2018-07-27 23:28:22 210

原创 POJ 3685 - Matrix (二分的二分)

http://poj.org/problem?id=3685题意:给你n*n的矩阵,每个元素(i,j)=.给你n,m,问你在n*n的矩阵里第m小的元素是多少。 POINT:可知,确定了j=k之后,元素(i,k)具有单调性,i越大,元素越大。所以我们二分答案,然后for循环遍历j,二分确定一个i是<=答案的。就知道对于这个j有 i个元素小于答案。把他们累加起来,...

2018-07-27 23:18:08 176

原创 POJ 2443 - Set Operation (bitset)

 http://poj.org/problem?id=2443 题意:给你n个集合(n<=1000),n个集合里有很多数x(1<=x<=10000),可以重复。每次问你a和b,问你能不能在某个集合中既找到a又找到b。 POINT:有两种思路,不过都是状态压缩bitset。1.对每一个数字压缩存在于哪些集合。对两个数字的存在状态&一下,如...

2018-07-27 23:09:07 194

原创 牛客网暑期ACM多校训练营(第三场) - E Sort String (next数组求最小循环节)

题意:字符串i:suffix(i)+prefix(i-1).把这0到n-1个字符串分组。完全一样的分为一组。按照字符串标号,一组一组输出。 POINT:找规律可得,只要找出最小循环节的长度,答案就确定了。之前用后缀数组写的,然后tle,所以输出了一些字符串找到了规律。 #include <cstdio>#include <cstring&g...

2018-07-27 13:32:02 210

原创 牛客网暑期ACM多校训练营(第三场) - A PACM Team (01背包+状态压缩输出路径)

https://www.nowcoder.com/acm/contest/141/A 题意:4维的01背包。每个数字都小于等于38。所有开4维的空间是够的。因为物品数量只有38,可以用状态压缩来记录路径。 你也可以开short数组来强行开五维数组。 #include <cstdio>#include <cstring>#includ...

2018-07-27 13:26:51 220

原创 The 2018 ACM-ICPC China JiangSu Provincial Programming Contest - B. Array (DP+滚动数组+离线)

https://nanti.jisuanke.com/t/28866 题意:每次给你n、k,问你1-n的排列恰好有k个逆序对的排列有多少种。n、k<=5000。 POINT:可知:dp[n][k]的递推公式为比如dp[4][4]=dp[3][1]+dp[3][2]+dp[3][3]+dp[3][4]。 为什么dp[4][4]不能从dp[3][0]得到,...

2018-07-27 11:04:12 178

原创 湖南省第十三届大学生计算机程序设计竞赛 - CSU 2005 Nearest Maintenance Point (最短路+bitset)

http://acm.csu.edu.cn/csuoj/problemset/problem?pid=2005 题意:给你一张图,包含点,边,边权值。给定一些点为维修站,问你离每个点最近的维修站是哪【些】点。多个答案按上升排序 POINT:把所有维修站连上一个超级汇点0,然后从0开始跑最短路。用biset状态压缩来存当前点最近的一个维修站。首先把所有维修站都记录一个...

2018-07-27 09:32:39 287

原创 2018 Multi-University Training Contest 2 - 1007 Naive Operations(线段树)

优秀的题解 #include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <string>using namespace std;#define LL long long#define lt x<&lt...

2018-07-26 18:05:35 178

原创 2018 Multi-University Training Contest 1 - 1002 Balanced Sequence (排序)

题目题意:给你n个括号字符串,让你自由组合这n个字符串,首尾相连。问你最长的括号匹配长度是多少。POINT:先把字符串处理了,把()的成功匹配的删掉。剩下的字符串就只有3种:1、))))2、((((3、)))(((。所以第一种放在最后面,第2种放在最前面。只剩第三种了。把”(“数量大于”)“的字符串成为正字符串,反之为负字符串。正字符串必定排在负字符串前面...

2018-07-26 17:29:44 182

原创 The 2018 ACM-ICPC China JiangSu Provincial Programming Contest - I. T-shirt (快速幂+Floyd)

题目 题意:给你n,m。m*m的邻接矩阵,问你从一个点到一个点,走过n个点(n=1的话,就不走边。)【n-1条边】最长路是多少。 POINT:快速幂+Floyd的应用。 #include<bits/stdc++.h>using namespace std;#define LL long longconst LL maxn=100+10;cons...

2018-07-24 22:18:32 345

原创 2018 Multi-University Training Contest 1 - 1004 Distinct Values (贪心 set)

题目题意:给你m个区间,他的要求是这个区间内不能存在相同的字符。序列长度共为n,元素为1到n。问你符合要求的最小字典序的序列。  POINT:先给区间按L从小到大排序,可以先把1到n个元素全部放入set。然后开一个pre指针(假),每次跑到当前区间的L-1,在这之前的元素都可以返回set。遍历L-R区间,然后每次放set中的begin。 就这样贪心的放置。...

2018-07-24 22:10:14 166

原创 牛客网暑期ACM多校训练营(第二场) - G transform (二分)

https://www.nowcoder.com/acm/contest/140/G 优秀的题解 #include <iostream>#include <stdio.h>#include <string.h>const int maxn = 500000+44;#define LL long longLL x[maxn],w[max...

2018-07-24 13:48:51 265

原创 牛客网暑期ACM多校训练营(第二场) J - farm (随机化+二维前缀和)

题目题目描述 White Rabbit has a rectangular farmland of n*m. In each of the grid there is a kind of plant. The plant in the j-th column of the i-th row belongs the a[i][j]-th type.White Cloud wants to ...

2018-07-24 13:36:19 349

原创 牛客网暑期ACM多校训练营(第二场) - D money (贪心)

https://www.nowcoder.com/acm/contest/140/D 题目描述 White Cloud has built n stores numbered from 1 to n.White Rabbit wants to visit these stores in the order from 1 to n.The store numbered i has a...

2018-07-24 13:30:50 240

原创 牛客小白月赛5 - A 无关(relationship) (容斥)

题目 POINT:要求所有的元素都不是正整数N的因数。那么求这个数 存在因素在集合中。用容斥做。然后减掉即可。wa点,会爆LL。 #include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <s...

2018-07-23 19:53:31 311

原创 hihoCoder 编程练习赛69 - D 幸运数字(数位DP)

题目 描述定义一个数字 x 是幸运的,当且仅当 x 是 x 十进制下所有数位的和的倍数例如 1..9 所有数都是幸运数,120 也是幸运数现在给定 n ,求 [1, n] 中有几个幸运数输入第一行一个正整数 n1 ≤ n ≤ 1012输出输出有几个幸运数  POINT: dp[14][120][120][120];//pos sum rema...

2018-07-22 18:50:15 619 4

原创 hihoCoder 编程练习赛69 - C 阶乘问题

题目 POINT:把k分解质因数,并存下每个质因数有几个。再看n!里有多少个这些质因数。取最少的倍数就ok了。这个就是用来求n!里有多少k这个质因数的。  #include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>...

2018-07-22 18:44:41 214

原创 AtCoder Beginner Contest 103 - D Islands War (贪心)

题目 题意:给你n个点,他们1到n依次从左到右连接。问你m对数(A,B)。AB不能相连。问你最少要拆多少条边. POINT:O(m)的做法:记录每一个左端点,与他有争议的最近的右端点。记为a数组(可以贪心的知道断每一个右端点是最优的)。那么假设断的是a[1],如果往后扫的有争议的右端点(比如a[2])比a[1]大,那么就只要断a[1]就行了。如果比a[1]小...

2018-07-22 13:42:09 442

原创 牛客网暑期ACM多校训练营(第一场) - E Removal (dp)

题目描述 Bobo has a sequence of integers s1, s2, ..., sn where 1 ≤ si ≤ k.Find out the number of distinct sequences modulo (109+7) after removing exactly m elements.输入描述:The input consists of seve...

2018-07-21 18:29:16 360

原创 HDU 1540 - Tunnel Warfare (set|线段树)

 题目 题意:给你n个村庄,他们按照顺序连在一起,有3种操作。D X,摧毁X,所以它两边的边也没了。R,恢复最近一次摧毁的村庄Q X,问你x村庄向左向右,一共连了多少个村庄。题目没说清楚的地方:(1)多case(2)某个村庄可以被毁坏多次(必须全部入栈),但只需要一次就能将其恢复(下面的这组数据,,)(3)D 3 D 2 D 1 D 1 D 2//R...

2018-07-20 22:58:22 181

原创 牛客网暑期ACM多校训练营(第一场) - A Monotonic Matrix (定理)

Count the number of n x m matrices A satisfying the following condition modulo (109+7).*Ai,j ∈{0,1,2}forall1≤i≤n,1≤j≤m.*Ai,j ≤Ai+1,j forall1≤i<n,1≤j≤m.*Ai,j ≤Ai,j+1 forall1≤i≤n,1≤j<m.输入描述:...

2018-07-20 13:14:32 321

原创 牛客网暑期ACM多校训练营(第一场) - D Two Graphs

题目 题目描述 Two undirected simple graphs  and  where  are isomorphic when there exists a bijection  on V satisfying  if and only if {x, y} ∈ E2.Given two graphs  and , count the number of graphs  s...

2018-07-19 19:43:55 368

原创 牛客网暑期ACM多校训练营(第一场) - J Different Integers (树状数组)

题目题目描述 Given a sequence of integers a1, a2, ..., an and q pairs of integers (l1, r1), (l2, r2), ..., (lq, rq), find count(l1, r1), count(l2, r2), ..., count(lq, rq) where count(i, j) is the number...

2018-07-19 19:35:20 504

原创 AtCoder Grand Contest 025 - B - RGB Coloring

题目题意:给你一座N层的塔,让你给每一层塔染色或者不染。给你A、B染红色加A,绿色加A+B,蓝色加B。 POINT:可以先不考虑绿色。假如只有红色和蓝色。我们遍历红色的个数从0到N。算出对应的蓝色数,得到红色X,蓝色Y。那么方案数为C(X,N)*C(Y,N)。然后独立的涂色,肯定会有涂重的部分。那么这个涂了红色又涂了蓝色的部分就是涂了绿色的部分。 #inc...

2018-07-19 09:37:00 175

原创 AtCoder Regular Contest 100 - E Or Plus Max

题目 题意:给你0-(2^n-1)个数,让你对每一个1<=k>=2^n-1的k,得出a[i]+a[j]最大,要求是i|j<=k。POINT:既然要求是i|j<=k,那么前面的答案就一定是后面的答案。所以对于每一个K,我们要找i|j=k的答案就可以了。找到k中的有1的数,即(1<<j&k成立),那么(1<<j)^k这...

2018-07-19 09:25:34 343

原创 Codeforces Round #498 (Div. 3) - F Xor-Paths (折半搜索)

 题目 题意:给你一个n*m的矩阵,从(1,1)到(n,m)只能往右或者往下走,把路径的值全部异或起来,若等于k,则算作一条路径。问你有几条路径。 POINT:反搜一半得到DP[x][y][mod]的值,代表若走到xy这个点,值为mod对答案有多少贡献。然后正搜到xy。折半搜索。注意x+y/2=1的情况。起点为(1,1) x+y=2。 #i...

2018-07-17 13:31:55 171

原创 Educational Codeforces Round 47 - E. Intercity Travelling

 题目题意:司机不休息的话,走1公里,消耗a1,再走一公里消耗a2,然后a3、a4。这样消耗下去。有休息站,可以让a数组重新数。问你总消耗的期望*2^(n-1)。 POINT:可以推一下。px为x这个坐标的期望组成。p1=1*a1 (第一个永远是a1)p2=1/2*a1+1/2*a2 (2这个点,有1/2的概率有休息站,那么1/2*a1,有1/2没有,那么从...

2018-07-16 20:30:14 229

原创 AtCoder Regular Contest 100 - D - Equal Cut (二分)

题目 题意:给你一个区间,让你把区间分成连续的4份,他们各自元素总和。【最大的减去最小的】要最小。问你最小差值。 POINT:区间为ABCD。把AB所在的区间称为左区间。CD为右区间。把左区间尽量分成平均的2分。右区间也一样。这样枚举n个答案。然后取最小就行了。 #include<iostream>#include<stdio....

2018-07-16 20:14:23 418

原创 牛客练习赛22 - C 简单瞎搞题 (bitset优化背包)

点击打开链接 用位运算降时间复杂度  #include <bitset>#include <iostream>#include <stdio.h>using namespace std;int n;bitset<1000200> b[110];int main(){ int n; scanf("%d",&a...

2018-07-14 12:28:55 392

空空如也

空空如也

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

TA关注的人

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