
ACM/ICPC Wanna_fly
just_sort
Acdream.
展开
-
Wanafly 练习赛8 题解
题目链接:https://www.nowcoder.com/acm/contest/39#questionA:给个n,求1到n的所有数的约数个数的和~解法:枚举每个可能的约数,然后答案就是对n/i求和。。这个直接枚举会T,然后发现这个可以分块求。。#include using namespace std;typedef long long LL;LL n;//sinma(n原创 2018-01-02 18:00:56 · 405 阅读 · 0 评论 -
Codeforces Round #278 (Div. 1) C. Prefix Product Sequence 模逆元,构造 2017/1/25
题目链接: 见这里题意: 考虑一个序列[a1, a2, …, an]。定义其前缀产生的一个序列[a1 mod n, (a1a2) mod n, (a1a2…an mod n)]。 现在给定一个n,你需要找到一个[1, 2, …, n]的一个排列组成的序列,使得按照如上规则产生的序列是[0, 1, …,n-1]组成的一个排列。 如果不存在,输出”NO”,否则输出”YES”,然后输出这个序列。如果原创 2017-01-28 14:49:46 · 391 阅读 · 0 评论 -
Light OJ 1125 Divisible Group Sums 背包DP 2017/1/23
题目链接:https://vjudge.net/problem/LightOJ-1125 题意: 给出N个32位有符号整数,Q次询问,每次询问从N个数中选出M个数并且这M个数的和能够整除D的方案数 数据 输入第一行表示数据组数 T,T <= 20 对于每组测试数据,第一行为 N 和 Q,0 < N <= 200,0 < Q <= 10 接下来Q行为 D 和 M,0 < D <= 20,0原创 2017-01-28 12:12:31 · 455 阅读 · 0 评论 -
LightOJ 1106 Gone Fishing 贪心, DP, 堆优化 2017年1月23日
题目链接: https://vjudge.net/problem/LightOJ-1106 题意 给出n个湖,John最开始在第一个湖并且有h个小时的时间,每个湖初始可以钓到f只鱼,每单位时间可以钓到的鱼减少d只(单位时间为5分钟,不足d只时减少为0),从第i个湖到第i+1个湖需要t[i]单位时间。求最多能够钓到鱼的数量和在每个湖花费的时间。 数据 输入第一行表示数据组数 T,T <= 1原创 2017-01-26 21:04:37 · 497 阅读 · 0 评论 -
Codeforces Round #306 (Div. 2) D. Regular Bridge 图论,构造,脑洞 1月26日
题目链接: http://codeforces.com/contest/550/problem/D 题意: 你需要构造出一个无向图,这个图的每个顶点度数都为k。这个图至少存在一个桥,不能存在重边和自环。 对于连通图中的一条边,如果将其移除,该图不再连通,并且分成了两个连通的子图,那么这条边就称之为桥。 数据 输出格式如下: 第一行,输出”YES” or “NO”。 若为”YES”,下原创 2017-01-26 18:09:49 · 394 阅读 · 2 评论 -
SPOJ Fata7y Ya Warda! 裸单调栈 1月25日
题目链接: https://vjudge.net/problem/SPOJ-DRUIDEOI 题意: 题意 n个数形成一个环,定义1号的左边是n号,位置i的数值为hi。 输出每一个数左边和右边,第一个比他大的数的位置,如果不存在这样的位置,输出-1。 数据 测试样例数T, (1 <= T <= 20)。 (1 <= n <= 1e5,1 <= hi <= 1e9)。 输入 3原创 2017-01-26 17:55:19 · 739 阅读 · 0 评论 -
SPOJ Manipulate Dwarfs 线段树维护序列连续性 1月24日
题目链接: https://vjudge.net/problem/SPOJ-DWARFLOG 题意: 题意 N个小矮人的身高为1,2,…,N,初始按照身高从1到N的顺序排列,给出m次操作 .1 X Y 将身高为X和Y的小矮人交换位置 .2 A B 询问身高为A,A+1,…,B的小矮人是否位于连续的位置 数据 第一行为N和M,2 <= N <= 200000,2 <= M <= 20原创 2017-01-26 16:43:17 · 523 阅读 · 0 评论 -
SPOJ Make Triangle 卡特兰数,递推 1月25日
题目链接 : https://vjudge.net/problem/SPOJ-TRNGL题意: 给出一个凸n边形,求用n-3条不相交的对角线将该n边形划分为三角形的方案数解题思路: 其实就是卡特兰数,下面讲一下最基本的递推方法吧。因为凸多边形的任意一条边必定属于某一个三角形,所以我们以某一条边为基准,以这条边的两个顶点为起点P1和终点Pn(P即Point),将该凸多边形的顶点依序标记为P1、P2、…原创 2017-01-26 16:09:27 · 540 阅读 · 0 评论 -
AtCoder Grant Contest 010 C - Cleaning DP, DFS,思维题 2017/2/6
有一棵N个节点的树,节点标号1-N,第i个边连着两个节点ai, bi。 每个节点有Ai个石头。每次你可以选择一对叶子节点(叶子节点是度数为1的点),然后将连接着两个节点的路径上的所有节点的石头数减一, 如果这条路径上存在石头数为0的点,那么不能进行这个操作。 问是否能把树上的所有石头全部移除。 数据 (2 <= N <= 1e5), (1 <= ai, bi <= N), (0 <= Ai原创 2017-02-11 23:19:19 · 767 阅读 · 0 评论 -
Codeforces Round #142 (Div. 1) C. Triangles 数学,完全图,统计贡献 2017/1/25
题目链接: http://codeforces.com/problemset/problem/229/C 题意: 有一个无向完全图(任意两个节点之间均有一条边),包含 n(1<=n<=10^6) 个顶点,现在有两个人A 和 B,A从这个无向图中取出 m(0<=m<=10^6) 条边出来,这样就把真个完全图分成了两个子图 A 和 B,要求统计两个子图中总共含有的“三角形”的个数。“三角形”的意思说的原创 2017-01-28 16:01:27 · 492 阅读 · 0 评论 -
Wannafly挑战赛1 C MMSet2 虚树DP
题目链接:https://www.nowcoder.com/acm/contest/15/C题解:就是求虚树直径/2向上取整。所谓虚树,其实就是把询问中需要用到的点建到另一棵树上,对于一些问题可以降低复杂度。比如我们询问一条链上的两个端点,直接做dfs的复杂度是O(N)的,但是对于虚树,这两个端点可以直接相连,它们之间的边记录了原本整条链上的信息,于是复杂度变成了O(1)。原创 2017-10-18 17:43:37 · 437 阅读 · 0 评论 -
Wannafly挑战赛4 部分题解
昨天状态迷到不行,B题的TP姿势不好调了整场最后结束了才过sample,心疼自己。万恶的赛后补题。A:给出n个整数和x,请问这n个整数中是否存在三个数a,b,c使得a*x^2+b*x+c=0,数字可以重复使用。解法:O(n^2)枚举前2项或者O(n)枚举第一项,后面hash查找。#include using namespace std;typedef long long原创 2017-11-25 16:35:55 · 582 阅读 · 0 评论 -
牛客练习赛7 题解
A: 在Alice和Bob面前的是两个骰子,上面分别写了六个数字。 Alice和Bob轮流丢掷骰子,Alice选择第一个骰子,而Bob选择第二个,如果谁投掷出的数更大,谁就可以获胜。 现在给定这两个骰子上的6个数字,你需要回答是Alice获胜几率更大,还是Bob获胜几率更大。(请注意获胜几率相同的情况) 解法:水题,模拟一下。#include using names原创 2017-12-04 16:15:16 · 632 阅读 · 0 评论 -
Wanafly挑战赛2 题解
A:给你一个长度为n的序列,你每次可以将一个序列分割成两个连续的的子序列,分割的代价为原序列的总和。现在允许你在初始时将序列重新排列一次。问分割成n个长度为1的序列的最大总代价是多少?#include using namespace std;typedef long long LL;const int maxn = 100010;int n, sum, a[maxn原创 2017-11-06 10:46:19 · 701 阅读 · 0 评论 -
Wannafly模拟赛5 待更新 题解
题目链接:https://www.nowcoder.com/acm/contest/18#questionA:考虑到均分一定比不均分好,我们就容易反推回去了。#include using namespace std;int work(int n, int cnt){ vector q(cnt, n/cnt); for(int i=0; i<n%cnt; i++原创 2017-11-04 10:32:59 · 354 阅读 · 0 评论 -
Wannafly模拟赛4 题解
A:FST是一名可怜的小朋友,他很强,但是经常fst,所以rating一直低迷。但是重点在于,他非常适合ACM!并在最近的区域赛中获得了不错的成绩。拿到奖金后FST决定买一台新笔记本,但是FST发现,在价格能承受的范围内,笔记本的内存和速度是不可兼得的。可是,有一些笔记本是被另外一些“完虐”的,也就是内存和速度都不高于另外某一个笔记本,现在FST想统计一下有多少笔记本被“完虐”原创 2017-11-08 19:47:38 · 1051 阅读 · 0 评论 -
Wannafly模拟赛3 题解
首先大赞Wannafly啊,无私奉献啊有木有。我把我做出来的和补的题写个题解。题目描述 一只南美洲亚马孙河流域热带雨林中的蝴蝶,偶尔扇动几下翅膀,可 以在两周以后引起美国德克萨斯州的一场龙卷风。――蝴蝶效应 由于这个理论的存在,大多数人认为将未来的事物送回过去将会引发 严重的时间悖论,但事实上还存在另外一套理论。 自然会对这类不和谐的蝴蝶效应做出调整,具体地来说就是触发一些 小概率的恶性原创 2017-10-10 15:30:37 · 594 阅读 · 0 评论 -
AtCoder Grand Contest 010 B - Boxes 验证解的存在性 2017/2/6
题意:给定N个围成一圈的数,重复进行下述操作: 挑选第i个数,从i+1转一圈回到i,依次减去1到N。 问是否存在一种操作使得最后整圈的数全为0。解题方法: 逆向思维好题! 将该过程倒着来看,就是每轮选择第i个数,从i+1转一圈回到i,依次加上1到N,将该操作设为操作1。问最后能否加到给定数列。令d[i]=a[i]-a[i-1],即考虑前数与后数之间的差,会发现,每次进行操作1时,差分的改变要么+1,原创 2017-02-11 21:51:05 · 432 阅读 · 0 评论 -
每日一题 CodeForces - 468C 2月26日
题目链接 题意 定义f(x)为x在十进制下的各位数字之和。 给定a,需要你给出一个l,r(1 <= l <= r <= 1e200)使得(f(l) + … +f(r))能被a整除。 题目确保有解。 数据 (1 <= a <= 1e18) 输入 46 126444381000032 输出 1 10 2333333 2333333333333 解题方法: 姿势1:[一套尺取原创 2017-02-28 16:53:14 · 431 阅读 · 0 评论 -
SPOJ - Horace and his primes(素数+二分查找)
【题目链接】 点击打开链接【题意】 给你一个数列的第一个数,例如90,那么我每次将这个n分解成素数,90 = 2*3^2*5,那么数列的第二个数是2+3+5 = 10; 那么数列第三个数有 10 = 2*5 ,2+5 = 7,所以数列的第三个数为7 第三个数7本身为素数了,那么,定义这个数列的order为原创 2017-01-01 16:30:00 · 264 阅读 · 0 评论 -
VK Cup 2015 - Finals, online mirror D. Restructuring Company 并查集 set 二分
【题目链接】点击打开链接【题意】 题意 给出 n 个元素,q 次操作,操作类型有三种1 x y :将x 和 y 合并到一个集合2 x y : 将x,x+1,x+2,...,y 合并到一个集合3 x y : 询问x 和 y 是否处于同一个集合 数据 1 接下来q行每行三个整数 type x y (1 输入原创 2017-01-09 10:05:55 · 371 阅读 · 0 评论 -
Codeforces Round #204 (Div. 1) B. Jeff and Furik 1月7日
【题目链接】点击打开链接【题意】Jeff和Furik玩游戏。对于一个长为n的序列,为1-n的排列,两个人交替操作。Jeff先手,他会选择一对相邻的数交换。Furik会先投硬币,如果是正面,他会随机选取一对相邻的数i,i+1,且Pi > Pi+1,进行交换。如果没有可以操作的数对,他会重新投掷硬币。如果是反面,他会随机选取一对相邻的数i,i+1,且Pi 硬币正反面的概率相等,原创 2017-01-09 09:39:35 · 347 阅读 · 0 评论 -
SPOJ Interesting Game 1月6日
【题目链接】 点击打开链接【题意】Alice和Bob玩游戏,一个数字,对于其在十进制下的每一位,玩家可以选择一个数值非0的位,将这个位置的数减去一个非0的数,使得这个位置的数在操作后非负。在某个玩家操作后,所有位置的数字都变为了0,则这个玩家获胜。假定Alice和Bob都做出最优选择,且Alice先手。分别输出,在A,B之间,Alice能获胜的数字有多少,Bob能获胜的数字有多原创 2017-01-08 21:35:01 · 281 阅读 · 0 评论 -
LightOJ - 1265 Island of Survival 脑洞 概率DP 1月3日
【题目链接】点击打开链接原创 2017-01-06 15:15:30 · 462 阅读 · 3 评论 -
Codeforces Round #336 (Div. 1) B - Zuma 1月3日
【题目链接】 点击打开链接原创 2017-01-06 11:31:22 · 484 阅读 · 0 评论 -
SPOJ_MINSUB:Largest_Submatrix(二分+单调栈)
【题目链接】点击打开链接【题意】 是说给定一个R*C的非负矩阵,试求出一个包含数字数>=K的子矩阵,使得这个子矩阵中最小的数字最大.【解题思路】 主要是二分答案,即二分那个最小的数字,然后针对每次二分的值mid,可以将原矩阵根据是否满足A[i][j]>=mid,而转成一个R*C的01矩阵a[][],然后问题求变成了给定一个二维01矩阵,求最大的满1矩阵,可以用单原创 2017-01-06 10:49:29 · 583 阅读 · 0 评论 -
1月2日 51 Node 1189 阶乘分数
【题目链接】 点击打开链接【题意】中文题面。【解题方法】Wannafly的题解,然后再次谢谢qwb巨对我的解答疑惑。【AC代码】////Created by just_sort 2016/1/3//Copyright (c) 2016 just_sort.All Rights Reserved//#include #include #inclu原创 2017-01-04 15:34:26 · 379 阅读 · 0 评论 -
51Node Treecnt 1月1日
【题目链接】点击打开链接【题意】中文题目【解题方法】我们考虑每一条边对答案的贡献。假如这条边一边有a个节点,另一边有b个节点。那么如果我要选中这一条边,我就必须要在两边都选上至少一个节点,且选的节点总个数等于k。我们考虑反面,就是只在一边选k个点,显然方案数是C(a,k)+C(b,k)总方案数是C(n,k)所以每条边的贡献等于C(n,k)-(C(a,k)+C(b,k))原创 2017-01-03 21:52:44 · 401 阅读 · 0 评论 -
分块法 hdu4858 项目管理 1月5日
【题目链接】点击打开链接【解题思路】qwb巨BLOG: 点击打开链接【AC代码】////Created by BLUEBUFF 2016/1/9//Copyright (c) 2016 BLUEBUFF.All Rights Reserved//#pragma comment(linker,"/STACK:102400000,102400000")#incl原创 2017-01-09 12:21:08 · 687 阅读 · 0 评论 -
Atcoder Xor Sum 1月5日
【题目链接】点击打开链接【题意】 题意 给定一个整数N,求出有多少对u, v (0 xor为异或操作。 数据 (1 输入 314221000000000000000000 输出 552277787014179 说明 样例1:u=0,v=0 (Le原创 2017-01-09 13:55:17 · 829 阅读 · 0 评论 -
12-30 Wannafly每日一题 Pretty Song
【题目链接】 点击打开链接【解题方法】求一个字符串的所有字串的权值和,每个字串的权值为元音字母的个数比上字串的长度将字串转化为01串,那么区间[l,r]的字串的权值为(s[r]-s[l-1])/(r-l+1),枚举长度k,则所有字串的权值和为Sigma(1/k *(s[k]-[s0] + s[k+1]-s[1]+...s[n]-s[n-k]) ) 一式令sum[原创 2017-01-01 14:05:35 · 662 阅读 · 0 评论 -
Letter-moving Game 1月8日
题目链接:见这里 题意:给出两个只包含小写字母的字符串S 和 T ,S 和 T的字母组成一样但字母顺序可能不同。每次操作可以将 S 中的任意一个字母移到 S的开头或者末尾,求将 S 变成 T的最少操作数。n <= 1000。 分析:下面题解描述来自Wannafly每日题解: 首先我们先得出一个简单的结论,就是每个字符最多挪动一次。如果有需要挪动两次的情况的话,那么通过改变挪动的顺序可以减少挪动原创 2017-01-10 23:42:34 · 385 阅读 · 0 评论 -
Codeforces Round #257 (Div. 1) D. Jzzhu and Numbers
题目链接:见这里 题意:给出n个非负的整数a[i],求选出至少一个数使得这些数按位与的结果为0的方案数。1 <= n <= 10^6,0<=a[i]<=10^6 。输出答案对1e9+7取模 解题思路,来自Wanafly每日一题。 原问题等价于给定n个包含于{0,1,2,…,19}的集合,求选出若干个集合使得它们的交为空的方案数, 直接不太好做,考虑容斥,记g[S]为选出若干个集合使得它们的交原创 2017-01-14 11:52:02 · 612 阅读 · 0 评论 -
SPOJ Time Limit Exceeded
【题目链接】点击打开链接【题意】【解题方法】 Wannafly的每日一题,通过这个题我学到了新的知识。就是维护如何维护高维前缀和。这个题首先不考虑c[i]的限制,我们可以想到一个dp,就是dp[i][j]表示长度为i的序列以j结尾的方案数。显然有dp[i][j] = sum(dp[i-1][k]),这里对所有满足j&k=0的k求和。 然后k & j原创 2017-01-03 19:25:32 · 802 阅读 · 0 评论 -
Codeforces Round #257 (Div. 1) A - Jzzhu and Chocolate 2017/1/11
题目链接:见这里 题意:Jzzhu有一块由n*m个单位正方形组成的巧克力,他想把这块巧克力切k次,每次切割按照以下规则。 .每次只能横着或者竖着切 .每次切割应该沿着单位正方形的边缘(不能分割单位巧克力) .每次切割只能在巧克力内部进行,且所有切法都不同 问当切完k次后,最小的巧克力面积最大是多少。 如果不存在切割方案,输出-1。 数据 n, m, k. (1 <= n, m <原创 2017-01-14 11:03:06 · 481 阅读 · 0 评论 -
Codeforeces 727 E 字符串双Hash 2017/1/12
题目链接:见这里 题意:n个长度为k的字符串,首尾相接,按顺时针顺序写在一张CD上,每个字符串只写一次总字符串长度小于1e6。保证每个字符串不同。这样CD上就有了一个环形字符串,长度是n*k。又给出g个长度为k的字符串列表(编号从1到g),按照顺时针打印CD上字符串的编号。保证每个字符串不同。保证这g个字符串长度的和小于2*1e6。 下面代码和思路参考了Wannafly每日一题,顺便学会了Has原创 2017-01-14 10:27:17 · 1257 阅读 · 0 评论 -
Codeforces 437E The Child and Polygon(区间DP) 2017/1/10
题目链接:见这里 题意:现在有一个简单多边形,问有多少种划分方式,使得这个多边形被划分成数个面积不为0的三角形。 每个划分方式需要满足以下条件: .每个三角形的顶点都必须是原多边形的一个顶点。 .多边形的每个边不能同时作为多个三角形的边。 .任意两个三角形面积交为0,所有三角形面积和为多边形面积。 .每个三角形都必须在多边形内部 .三角形的每一边必须包含多边形的两个顶点 输出划分方案原创 2017-01-13 22:50:02 · 593 阅读 · 0 评论 -
Codeforces 321C Ciel the Commander 树分治 2017/1/10
题目链接:见这里 题意:给出一棵n个节点的树,为每个节点分配一个大写字母(从A到Z,这里认为A>B>C…>Z),每种字母可以无限使用, 满足对于任意字母相同的两个节点u和v,在u到v的路径上存在一个节点的字母大于u节点处和v节点处的字母, 输出分配方案,无解输出”Impossible” 分析:找树的重心,把它染成最大的字母,然后把它去掉,树就会分成很多份,并且在这些树里我们不再使用最大的字母原创 2017-01-13 20:50:48 · 768 阅读 · 0 评论 -
2016 - 12 月 27 SPOJ Interesting Subset
【题目链接】 点击打开链接【题意】给定一个集合,该集合由1,2,3....2n组成,n是一个整数。问该集合中有趣子集的数目,答案mod1e9+7。x的子集合有趣定义为,该子集中至少有两个数,a和b,b是a的倍数且a是集合中最小的元素。【解题方法】考虑一下枚举一个最小元素,那么比它大的元素的个数显然为(2*n / a-1)。这其中的元素有选和不选两种,但是不能全部不选。接下来是所有大于最小元原创 2017-01-02 12:28:41 · 468 阅读 · 0 评论