ICode9

精准搜索请尝试: 精确搜索
  • CF917D Stranger Trees2020-01-28 22:58:07

    Link 众所周知Kirchhoff定理中的边权可以是多项式。 直接NTT的复杂度是\(O(n^4\log n)\)。 带\(n\)个值进去算然后快速插值Lagrange插值或者Gauss消元是\(O(n^4)\)的。 #include<bits/stdc++.h> #define LL long long using namespace std; namespace IO { char ibuf[(1<<21

  • [题解] [Codechef] CNTL2020-01-18 09:02:08

    题面 题解 第一问很简单, 如果 \(n - k\) 是偶数那么答案就是 \(2 ^ k - 1\) , 如果 \(n - k\) 是奇数答案就是 \(2^k - 2\) 第二问怎么办, 我们对于 \(n - k\) 是偶数讨论 我们要做的是, 对于每一个数, 我们要让他选奇数次最后的答案可能性才会最大 并且所有的数选的次数加起来是

  • 2020 camp day-1-c2020-01-15 12:56:01

    题面 7-3 1C. 染色图   定义一张无向图 , 是 k 可染色的当且仅当存在函数 1 满足对于 G 中的任何一条边 (,都有 (。 定义函数 ( 的值为所有包含 n 个点的无自环、无重边的 k 可染色无向图中的边数最大值。举例来说,(。 现在给出三个整数 ,,你需要求解: m

  • 2020 camp day0 -F2020-01-14 21:51:13

    题面 7-6 1F. 乘法   给出一个长度为 n 的数列 和一个长度为 m 的数列 ,可以构造得到一个 n×m 的矩阵 C,其中 C​i,j​​=A​i​​×B​j​​。 给出整数 K,你需要求出 C 中第 K 大的数的值。 输入格式: 第一行输入三个整数 ,。 第二行输入 n 个空格隔开的

  • Atcoder Beginner Contest151E(排列组合)2020-01-14 17:51:44

    排列组合 1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 int a[100007]; 5 const long long mod = 1e9+7; 6 long long inv[100007]; 7 long long qpow(int p,int q){ 8 long long s=1; 9 for(;q;q>>=1,p=1l

  • LG5492 [PKUWC2018]随机算法2019-12-19 11:02:40

    题意 有一种贪心求最大独立集的算法: 随机一个排列 按顺序加入独立集,如果一个点能加入,就加入\({S}\) 给出一张图,问得出正确答案的概率。 \(n \leq 20\) 传送门 思路 用 \(dp[i][s]\) 表示排列集合为 \(i\),最大独立集的大小为 \(s\) 的方案数,\(a[x]\)表示与\(x\)相连的点集。 考虑

  • [Codeforces 1265E]Beautiful Mirrors2019-12-06 22:55:31

    Description 题库链接 一共有 \(n\) 个关卡,你初始在第一个关卡。通过第 \(i\) 个关卡的概率为 \(p_i\)。每一轮你可以挑战一个关卡。若通过第 \(i\) 个关卡,则进入第 \(i+1\) 个关卡,否则重新回到第 \(1\) 个关卡。通过第 \(n\) 个关卡则算成功。问期望多少轮游戏才能成功。 \(1\leq

  • [LOJ#2743][DP]「JOI Open 2016」摩天大楼2019-12-03 09:02:21

    题目传送门 DP 经典题 考虑从小到大把数加入排列内 如下图(\(A\) 已经经过排序): 我们考虑如上,在 \(i\) ( \(A_i\) )不断增大的过程中,维护上面直线 \(y=A_i\) 之下的部分的长度之和 于是我们定义 DP :\(f[i][j][k][h]\) 表示插入了前 \(i\) 个数,分成 \(j\) 段,\(y=A_i\) 之下的部分长

  • loj #6342. 跳一跳 期望dp2019-11-04 17:00:51

    水题,逆推一遍即可~  code:  #include <bits/stdc++.h> #define N 12000010 #define LL long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; const LL mod=1000000007; int inv[N]; int main() { // setIO("

  • 清北学堂day32019-11-04 12:01:32

    T1 gcdlcm   用cnt[i]记录i出现了多少次,枚举约数d,检查cnt[j*d] (j*d<=maxn),用f,g记录最大值和次大值; 若cnt[j*d]>=2,则f,g都更新为j*d; 若cnt[j*d]==1则g=f,f=j*d; 若f>0,g>0,则答案更新为f*g/d; 注:若f与g相同,由于上面的d会枚举到,所以不会影响答案; code:   #include<iostream>#inc

  • AGC002F Leftmost Ball2019-11-04 11:55:42

    题意 \(n\)个数,每个\(k\)个,将\(n\times k\)个数随意排列,把每数中的第一个改写为\(0\),求不同序列个数。 $n,k \le 2000 $ 传送门 思路 又是一道神仙\(dp\) 设\(dp_{i,j}\)表示当前已经有了\(i\)个\(0\),有\(j\)个数已经填完的方案数。 转移分两种: 填入一个\(0\):\(dp[i+1][j]+=dp[

  • AT2000 Leftmost Ball2019-10-25 16:00:09

    设\(f[i][j]\)表示当前有\(i\)个白球,一共放完了\(j\)种球 显然有\(j <= i\) 对于每个状态目前已经放下去的球是固定了的,那么考虑转移 放白球 从\(f[i - 1][j]\)转移 放没有出现过的球 \((n - j + 1) * f[i][j - 1] * C(k - 2, n * k - i - (j - 1) * (k - 1) - 1)\) 第二种的C是

  • Petrozavodsk Winter Training Camp 2018 Jagiellonian U Contest Problem A. XOR2019-10-22 20:55:44

    先把所有的数异或起来 得到sum 然后sum有一些位是1一些位是0 是0的位表示所有数里面有这位的数是偶数个 则无论怎么划分数 这一位对最终的答案都是不会有贡献的  因为偶数=偶数+偶数/奇数+奇数 所以我们把所有数直接&sum不管那些没有贡献的位 再一个个插入作线性基 拿出一个最高

  • Codeforces Round #589 (Div. 2)E(组合数,容斥原理,更高复杂度做法为DP)2019-10-05 18:54:38

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int f[257],fac[257],ifac[257];const long long mod = 1e9+7;int qpow(int x,int y){ int tamp=1; while(y){ if(y&1) tamp=1ll*tamp*x%mod; x=1ll*x*x%m

  • Codeforces 5882019-10-03 12:01:56

    A \(n^2\) 删点+暴力更新+bfs。 Code #include<bits/stdc++.h> using namespace std; typedef long long D; typedef pair<D,D> P; const int maxn=7003; int n,tot[maxn]; P a[maxn]; bool del[maxn]; bitset<maxn> b[maxn]; queue<int> q; int main(){

  • 1LL2019-10-03 10:55:58

     long long ANS=1LL*num*((1LL)*n*(n-1))/2;  其中用了1LL: LL其实代表long long,*1LL是为了在计算时,把int类型的变量转化为long long,然后再赋值给long long类型的变量。 代码中的ANS的定义为: long long ANS  ANS是long long类型的, ANS=1LL*num*((1LL)*n*(n-1))/2;  不至于后

  • BZOJ 4559 [JLoi2016]成绩比较 (DP+拉格朗日插值)2019-09-21 17:03:44

    题意 BZOJ4559 题解 看这,写得真好。 CODE #include <bits/stdc++.h> using namespace std; const int MAXN = 105; const int mod = 1e9 + 7; int n, M, K, U[MAXN], R[MAXN], c[MAXN][MAXN], f[MAXN][MAXN]; inline int qpow(int a, int b) { int re = 1; while(b) {

  • HDU 6264 (深搜,数论)2019-09-18 20:58:36

    题目链接 题意 求\(\sum_{d|n}\phi (d) \times {n\over d}\),其中\(\phi(n) = n\prod_{p|n}({1-{1\over p}})\) 分析 将\(\phi(d)\) 分解式子代入可知:\(\sum_{d|n}(n\times \prod_{p|d}(1-{1\over p}))\) \(d\) 是 \(n\) 的因子,枚举 \(d\) 的质因子的所有可能的组成情况共\(2^c\)

  • 【ZJOI2010】排列计数2019-09-04 19:01:27

    题面 https://www.luogu.org/problem/P2606 题解 数列按广度优先搜索序搜索,变成一个堆。所以形态是给定的。 只需记忆化搜索就可以了,复杂度$O(logn)$。顺序递推亦可。 对于阶乘超过$p$的情况,我们把$p$的次幂记下来,算的时候直接减去。$aysn$说这是卢卡斯定理,我只能$orz$了。 #incl

  • [矩阵乘法] CF 1182 E.Product Oriented Recurrence2019-08-29 11:02:13

    Fn = c2n-6 * Fn-1 * Fn-2 * Fn-3,求 Fn . 推一下式子,变成 Fn * cn = ( Fn-1 * cn-1 ) * ( Fn-2 * cn-2 ) * ( Fn-3 * cn-3 ) 记 Tn = Fn * cn,就有 Tn = Tn-1 * Tn-2 * Tn-3 . 再推一下,Tn = Tn-22 * Tn-32 * Tn-4, Tn 的指数就是可以 ( a , b , c )   ----- >   ( b+a ,

  • @atcoder - Japanese Student Championship 2019 Qualification - F@ Candy Retribution2019-08-25 09:56:47

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 请找到满足以下条件的长度为 N 的非负整数序列 A1, A2, ..., AN 的数量。 (1)L≤A1+A2+...+AN≤R。 (2)将 N 个元素排成非增序列后,第 M 个元素要等于第 M + 1 个元素。 请将答案 mod 10^9 + 7。 Constr

  • 「JOISC 2018 Day 1」帐篷2019-08-18 16:03:46

    题意:\(n\)行\(m\)列的矩阵\((n,m<=3000)\),在格子里搭一些帐篷.每座帐篷必须占据刚好一个格子.没有两座帐篷会占据同一个格子.每座帐篷在东、南、西、北四个方向之一有一个出入口.帐篷的出入口朝向必须满足以下条件:同一行或同一列的两个帐篷的出入口要相对(例如同一行的两个帐篷,

  • 「HNOI2016」序列2019-08-12 18:05:07

    传送门 Description 有 \(q\) 个询问,每个询问给定两个数\(l\) 和\(r\),求 \(a[l:r]\) 的不同子序列的最小值之和 Solution  校内模拟赛用了这道题,但是莫队只能拿\(80\)分,正解是猫树 当然还是莫队啦 考虑一个数加入时的贡献,就是以它为端点的区间的贡献 发现可以将现有的区间

  • 线性基基本操作于模板2019-08-12 13:00:20

    资料出处:https://blog.csdn.net/a_forever_dream/article/details/83654397 https://blog.csdn.net/qaq__qaq/article/details/53812883 基础操作: 定义设数集T的值域范围为[1,2n−1]。T的线性基是T的一个子集A={a1,a2,a3,...,an}。 A中元素互相xor所形成的异或集合,等价于原数集T的

  • Color2019-08-11 13:02:43

    C - Color 参考:CF GYM 100548 Color(2014ACM西安现场赛Problem F) Codeforces Gym 100548F Color (组合数+容斥) 思路:可以参考第一个博客的思路,很容易理解 需要注意的地方:因为数据很大所以一不小心就会爆,所以最好都用 long long ll ans=0; int flag=1; for(int

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

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

ICode9版权所有