模拟+算贡献——cf1195D】的更多相关文章

比赛的时候没看到模数,用java大数在写,最后看到的时候已经慌了.. 把贡献算清楚就可以 下面是贡献的推导 有五位数 abcde * 10个 有两位数 fg * 3 个 那么这两种数组成的情况就是 abcdfeg 或 abcfdge,现在只考虑五位数在前,两位数在后的情况, 五位数的情况是abcd_e_,每个五位数出现了3次,那直接把10个五位数在每位上求和,然后这个五位数的贡献*3, 两位数的情况是____f_g,每个两位数出现了10次,那么也直接把3个两位数在每位上求和,然后这个两位数的贡献…
E. Pretty Song time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output When Sasha was studying in the seventh grade, he started listening to music a lot. In order to evaluate which songs he likes m…
Energy stones 题意 有n块石头,每块有初始能量E[i],每秒石头会增长能量L[i],石头的能量上限是C[i],现有m次时刻,每次会把[s[i],t[i]]的石头的能量吸干,问最后得到了多少能量? 分析 题意不难理解,模拟题意也不难,但是纯粹模拟会T上天,怎么处理呢?枚举时间不可行,我们可以换个角度思考问题,考虑求每一个石头的贡献行不行?如何求一个石头的贡献呢,只要知道哪个时间点吸了这个石头,就能求出这个石头的贡献了.那时间点如何维护?我们知道,相邻石头的时间点不同只可能是有终点或者…
Problem Description OO has got a array A of size n ,defined a function f(l,r) represent the number of i (l<=i<=r) , that there's no j(l<=j<=r,j<>i) satisfy ai mod aj=0,now OO want to know     Input There are multiple test cases. Please p…
/* 给定数组a[],求有多少集合的异或值为0,将这些集合的大小之和求出来 对于每个数来说,如果除去这个数后数组里做出的线性基和这个数线性相关,那么这个数贡献就是2^(n-1-线性基的大小) 反之这个数和线性基线性无关,即数组里凑不出这个数来和其异或等于0,所以贡献就是0 由于做n次线性基很麻烦,所以简化问题,只需要先做出一个基,将数分成在基内和基外即可 首先做出一个线性基base,设其大小为r 然后分情况来讨论: 1.对于线性基外的每个数,其贡献是2^(n-r-1) 2.对于每个线性基内的数字…
Product Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Problem Description Given a number sequence A1,A2....An,indicating N=∏ni=1iAi.What is the product of all the divisors of N?   Input There are multiple test…
A /*Huyyt*/ #include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define pb push_back using namespace std; typedef long long ll; typedef unsigned long long ull; ][] = {{, }, {, }, {, -}, { -, }, {, }, {, -}, { -, -}, { -, }}; ; + + + + 1e9…
发现最近写的代码,通过GitBash上传到github,但是格子确一个都没亮,今天通过一番检索解决了此问题,特做记录: 通过这篇文章找到了原因所在: GitHub 更新代码到底怎样才算贡献? 通过这篇文章顺利完成了用户名以及密码的设置:  git安装以及设置ssh,用户名和邮箱…
题目 给出一个n*m的01矩阵, 让你最多改变k个里面的值(0变1,1变0), 使得0.1的连通分量是矩阵.输出最少步数 1 ≤ n, m ≤ 100; 1 ≤ k ≤ 10 题解: 如果01连通分量是矩形, 那么矩形一定是这样的: 0101010 1010101 0101010 1010101 (上面的01代表子矩阵块). 也就是每一行要么是相同,要么是相反的. 如果n>k, 肯定有一行是不能改变的,那么枚举这一行,然后其余的要么变相同,要么变相反,看最少的步数. 如果n<k ,那么可以枚举…
之前挖了两个大坑 一个是day1下午的第二题 另一个是day2上午的第五题 先说day1下午的第二题吧 我们显然不能O(n^2)的dp,所以我们只能算贡献 首先对于任意一个边界点而言,他对答案的贡献路径有很多,但是贡献的系数都形如a^c*b^d的形式 而且很容易发现贡献系数是一个定值,那么贡献次数就等于贡献路径的条数,就等于从这个点走到(n,n)的方案数 这是能用组合数算出来的 可以得出贡献系数为 C(2n-i-2,n-i)*a^(n-1)*b^(n-i)或者C(2n-i-2,n-i)*a^(n…