ICode9

精准搜索请尝试: 精确搜索
  • 牛客 粉刷匠(dp)2020-05-28 13:04:19

    有些题目可以进行二维dp,当然这题用四维也可以做。 我们先做每一行,f[][][],表示第i个用j次,涂前k个的最大值。 做完后,可以把它看作分组背包问题,每个木板都是一个物品,再跑一边dp即可 #include<bits/stdc++.h> using namespace std; const int N=3e5+10; int f[55][2510][55]; int g[

  • 杂题2020-05-28 11:06:52

    题意 \(n\)个二元组\((a_i,b_i)\),\(a_i\in[0,10^9],b_i\in [1,3]\),有效区间\([l,r]\)为区间内\(cnt1,cnt2,cnt3\)互不相等(\(cnt1\)为\(a_i=1\)的数量),有效区间的权值为\(\oplus b_i\)。求以\(r=1\sim n\)为右端点的最大有效区间 做法 若忽略有效区间的限制,是一道可持久化trie的模

  • Codeforces Round #643 (Div. 2) D. Game With Array (思维,构造)2020-05-17 14:02:52

    题意:给你两个正整数\(N\)和\(S\),构造一个长度为\(N\)并且所有元素和为\(S\)的正整数数组,问是否能找到一个\(K (0\le K \le S)\)使得这个数组的任意_子数组_的和都不等于\(K\)或\(S-K\),如果存在则输出YES,并且输出这个数组和\(K\),不存在则输出\(NO\). 题解:这类题写多了

  • [HAOI2006]受欢迎的牛 G-强连通分量2020-04-30 12:54:51

    题目 题目 tarjan算法每次打都要翻书,于是就学了一个叫Korasaju算法的东西 程序 给定有向图,缩点,判断是不是只有一个点出度为0,是,输出,否则输出0。 #include <iostream> #include <cstring> using namespace std; const int N=2E5+10,M=2E5+10; int scc[N],sc; int to1[M],nxt1[M],he

  • LeetCode #229. Majority Element II 数组 摩尔投票法2020-04-16 13:02:06

    Description Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. Note: The algorithm should run in linear time and in O(1) space. Example 1: Input: [3,2,3] Output: [3] Example 2: Input: [1,1,1,3,3,2,2,2] Output: [1,2]

  • Codeforces 1025F Disjoint Triangles (计算几何)2020-04-13 21:00:10

    题目链接 https://codeforces.com/contest/1025/problem/F 题解 一道挺有意思的计算几何题 qwq 关键在于注意到任何一对不相交的三角形之间,一定有 \(2\) 条内公切线,而一对相交的三角形之间有 \(0\) 条。 于是枚举两个点,求一下这两个点的连线两侧分别有多少点,就可以求出有多少对三

  • 精简版时间复杂度与空间复杂度(五分钟掌握)2020-04-07 11:57:11

    前言 一个算法的优劣好坏,会决定一个程序运行的时间、空间。也许当小数据量的时候,这种影响并不明显,但是当有巨量数据的时候,算法的好坏带来的性能差异就会出天差地别。可以说直接影响了一个产品的高度和广度。每个程序员都想用最优的算法解决问题,我们期待自己写出的代码是简洁、高效

  • POJ - 3268 Silver Cow Party2020-03-31 21:06:56

    POJ - 3268 题目链接 一道最短路问题,但是和单源对短路又不一样,这里有来回的问题 首先每头牛回的路径很简单,就是以终点为起始点来通过一个dis数组来记录他们回到原粗的距离, 因为这里是单向边,每头牛到终点的距离肯定和回到起始点的距离不一样, 这里我们考虑反向建边,又再一次把问题变

  • AcWing200 Hankson的趣味题(数学)2020-03-22 17:52:33

    这题我们很容易想到可以先求出x的取值,再进行比对看看是否可以 但是如果我们直接求出所有x的取值复杂度会超,因为求约数的复杂度较高 所以我们考虑先求去所以质因数,再通过dfs来求约数 之后进行比对即可。 #include<iostream> #include<string> using namespace std; typedef long

  • C. Frog Jumps2020-03-16 13:04:31

    C. Frog Jumps 题意 一行字符串由L和R组成,数组从1标号到n。青蛙从0的位置开始起跳,想到达n+1的位置,当他跳到L的时候只能往左跳,跳到R的时候只能往右跳,跳的范围由你来定。问最小的d是多少 思路 d = 连续最长的L+1。 代码实现 #include<bits/stdc++.h> using namespace std; int main(

  • J. Even Numbers2020-03-10 16:02:20

    先达标找规律吧,达标的时候看奇数的个数而不是偶数的个数,就能和看出来了   这个题我算pow(2,n)的时候又出现了向下取整的情况,所以就是说,以后算2的n次方 直接1ll<<n就完了。 https://codeforces.com/gym/101972/problem/J #include<bits/stdc++.h> #define endl '\n' #define _for

  • [codeforces 1321A] Contest for Robots 题目有些长2020-03-02 10:02:12

    Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round)   比赛人数5638 [codeforces 1321A] Contest for Robots   题目有些长 总目录详见https://blog.csdn.net/mrcrack/article/details/103564004 在线测评地址https://codeforces.ml/contest/1321/probl

  • 7-10 多项式A除以B (25分)(多项式除法)2020-02-27 21:02:19

      7-10 多项式A除以B (25分)   这仍然是一道关于A/B的题,只不过A和B都换成了多项式。你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数。 输入格式: 输入分两行,每行给出一个非零多项式,先给出A,再给出B。每行的格式如下: N e[1] c[1] ... e[N] c[N]   其中N

  • PTA1016 部分A+B2020-02-04 10:42:47

    题目: 正整数 A 的“D​A​​(为 1 位整数)部分”定义为由 A 中所有 D​A​​ 组成的新整数 P​A​​。例如:给定 A=3862767,D​A​​=6,则 A 的“6 部分”P​A​​ 是 66,因为 A 中有 2 个 6。 现给定 A、D​A​​、B、D​B​​,请编写程序计算 P​A​​+P​B​​。 输

  • V - Infinite Prefixes CodeForces - 1295B2020-01-30 20:57:09

    天哪!!菜到家啦。 数学+思维。 首先求出一个周期内cnt0-cnt1=c的个数,如果C=0,那么只要在一个周期内有前缀等于x,那么答案就是-1,否则答案就是0 如果C!=0,列一下方程x=t*c+a.即x-a=t*c。,要求t为大于等于0的整数,也就是我们的判断条件。。。。唉。 #include<bits/stdc++.h> using namespac

  • BZOJ 2738. 矩阵乘法2020-01-26 14:52:03

      整体二分加上一个二维树状数组数点即可。 #include <bits/stdc++.h> namespace IO { char buf[1 << 21], *p1 = buf, *p2 = buf; int p, p3 = -1; void read() {} inline int getc() { return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1

  • BZOJ 1901. Zju2112 Dynamic Rankings2020-01-26 12:55:25

      整体二分和树套树都是 $O(n \log ^ 2 n)$ 的,但是整体二分的常数更小。 整体二分就是二分答案,然后就转化成区间数点问题,把区间里小于当前mid的数标成1,然后bit查询一下,再分成左右递归做下去。 #include <bits/stdc++.h> const int N = 5e4 + 7; const int INF = 1e9; struct N

  • 【AGC030F】Permutation and Minimum(DP)2019-12-08 14:04:22

    题目链接 题解 首先可以想到分组后,去掉两边都填了数的组。 然后就会剩下\((-1,-1)\)和\((-1,x)\)或\((x,-1)\)这两种情况 因为是最小值序列的情况数,我们可以考虑从大到小填数,一个组填完了最小值就是当前填的数 设\(f[i][j][k]\)表示已经填到数\(i\)剩余\(j+k\)个填了一个数的组,其

  • 相框2019-10-28 16:04:04

    https://loj.ac/problem/10111 题目描述   给出一张图,可以有两种操作:\(①\)把一个点拆成若干点,连在这个点上的边可以任意连到拆成的点上。\(②\)将两条边自由端熔融成一个点。求最少的操作数使得这张图变成一个简单环。 思路   还是一样,我们从最简单开始,如果图是一个连通图,那

  • CF521D Shop2019-10-28 14:56:07

    题意 \(n\)个数,有\(m\)个操作,形如: 将\(x_i\)改成\(val_i\) 将\(x_i\)加上\(val_i\) 将\(x_i\)乘上\(val_i\) 现在你可以从中选择最多\(k\)个操作(不能重复选),并按一定顺序执行,使得\(\prod_{i=1}^{n}x_i\) 第一行输出选择的操作个数,第二行按执行顺序输出方案。 思路 先考虑,一定

  • 51Nod1110 距离之和最小 V32019-10-12 21:00:59

    Problem X轴上有N个点,每个点除了包括一个位置数据X[i],还包括一个权值W[i]。点P到点P[i]的带权距离 = 实际距离 * P[i]的权值。求X轴上一点使它到这N个点的带权距离之和最小,输出这个最小的带权距离之和。 Solution 中位数最小,加权可以看成多个点。 Code #include<iostream> #includ

  • 考试总结 模拟572019-10-04 21:57:32

    考前被奶了,然后没什么感觉,很冷静的水完T1,本来一直以为这会是套水题,然后才发现T2T3不可做,心态很炸地写完了,T2暴力写错了很多东西,调了好久 T1淼题 T2「状压DP」「边化点」 首先根据n很小可以想到状压 60%算法: 根据拓扑序构造DAG 定义f[s][ss]表示构造出来的DAG中 选出来的点集是s,最

  • csp-s模拟测试57(10.2)「天空龙」·「巨神兵」·「太阳神」2019-10-04 21:01:58

    题目是古埃及神话??? A. 天空龙 傻逼模拟,看来没有滑天下之大稽QAQ,也没有打错快读(大雾...) B. 巨神兵  难度爆增,一脸懵比..... 60分状压: 因为是求有向图,关于有向图好像拓扑用的很多,考虑到每个图的拓扑序是一定的 那么我们可以借此转移,设f[i][j]为当前点的状态为i,出度为零的点的度

  • UVa,1339(紫书)==========简单题,但是读不懂题的话,就凉凉了2019-09-17 20:36:08

    这个题我本来看错意思了。 我以为,他所谓的替换规则(substitution) 一定是  B-->A,,,,,以此类推。 但是,通过样例我们发现,替换规则并不是这样。。。。 最大的感受就是,英语很重要,要在平时的练习中逐渐适应读英语。 #include<iostream> #include<algorithm> #include<stack> #in

  • 2019ICPC沈阳网络赛-D-Fish eating fruit(树上DP, 换根, 点分治)2019-09-15 16:57:03

    链接: https://nanti.jisuanke.com/t/41403 题意: State Z is a underwater kingdom of the Atlantic Ocean. This country is amazing. There are nn cities in the country and n-1n−1 undirected underwater roads which connect all cities. In order to save energy and avo

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有