#include<cmath> #include<set> #include<map> #include<queue> #include<cstdio> #include<vector> #include<cstring> #include <iostream> #include<algorithm> using namespace std; typedef long long ll; typede…
Problem F: Frightful Formula \[ Time Limit: 10 s \quad Memory Limit: 512 MiB \] 题意 题意就是存在一个\(n*n\)的矩阵\(f[n][n]\).然后给出\(n,a,b,c\),在给出两个序列\(l[n],t[n]\). 定义矩阵如下: \[ \begin{aligned} f[i][1] &= l[i] \\ f[1][i] &= t[i] \\ f[i][j] &= a*f[i][j-1] + b*…
Frightful Formula 给你一个\(n\times n\)矩阵的第一行和第一列,其余的数通过如下公式推出: \[f_{i,j}=a\cdot f_{i,j-1}+b\cdot f_{i-1,j}+c\] 求\(f_{n,n}\mod (10^6+3)\). \(2≤n≤200000\) zhouzhendong的题解 利用FFT来解决此题 这题的主要思路很巧妙. 先假设\(a=b=1\) 我们考虑对于每一个\(f_{i,j}\)计算它对\(f_{n,n}\)的贡献次数. 显然贡献次数…
4451: [Cerc2015]Frightful Formula Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 177  Solved: 57[Submit][Status][Discuss] Description 给你一个n*n矩阵的第一行和第一列,其余的数通过如下公式推出:  F[i,j]=a*f[i,j-1]+b*f[i-1,j]+c  求f[n][n]%(10^6+3)  Input 第一行三个数n,a,b,c  第二行n个数,第i个表…
Codeforces GYM 100876 J - Buying roads 题解 才不是因为有了图床来测试一下呢,哼( 题意 给你\(N\)个点,\(M\)条带权边的无向图,选出\(K\)条边,使得得到的子图联通并且总代价最小,输出最小总代价和一种方案. 虽然题目里描述的很冗长,但其实这个图有一些性质:它最初是一条链/一个环,然后再有一些结点直接连到这些在链上/环上的结点.. 下图就是一个(就是样例): 做法 首先我们可以简单的查看点的度数来找到链/环上的点,和连接它们的边. 然后我们可以通过…
原文链接http://www.cnblogs.com/zhouzhendong/p/8820963.html 题目传送门 - BZOJ4451 题意 给你一个$n\times n$矩阵的第一行和第一列,其余的数通过如下公式推出: $$f_{i,j}=a\cdot f_{i,j-1}+b\cdot f_{i-1,j}+c$$ 求$f_{n,n}\mod (10^6+3)$. 题解 利用$FFT$来解决此题 真是一道好题只是我太菜了.光$FFT$就调了好久.当然本题可以直接递推(将写在用$FFT$实…
$(i,1)$对答案的贡献为$l_iC(2n-i-2,n-i)a^{n-1}b^{n-i}$. $(1,i)$对答案的贡献为$t_iC(2n-i-2,n-i)*a^{n-i}b^{n-1}$. $(i,j)$的$c$对答案的贡献为$cC(2n-i-j,n-i)a^{n-j}b^{n-i}$. $c$总的贡献为: \[\begin{eqnarray*}&&c\sum_{i=2}^n\sum_{j=2}^nC(2n-i-j,n-i)a^{n-j}b^{n-i}\\&=&c\su…
http://acm.timus.ru/problem.aspx?space=1&num=1519 https://vjudge.net/problem/URAL-1519 题目大意:给一个网格,有些网格有障碍,问有多少条哈密顿回路. ——————————————————- 插头dp模板题,详见:http://www.cnblogs.com/luyouqi233/p/8256778.html 参考代码和思路于:http://www.yhzq-blog.cc/%E6%8F%92%E5%A4%B4d…
正题 题目链接:https://www.luogu.com.cn/problem/P4351 题目大意 \(n*n\)的矩形,给出第一行和第一列的数,剩下的满足\(F_{i,j}=a*F_{i,j-1}+b*F_{i-1,j}+c\) 求\(F_{n,n}\) 解题思路 第一眼看以为是水题,因为给出的数字的贡献通过组合数很好算,但是后来发现麻烦的是那个\(c\).我们考虑每个格子的\(c\)产生的贡献. 下面为了方便我们先默认让所有格子横纵坐标减\(1\) 对于一个格子\((i,j)\),通过它…
-------------------题目难度较难,但挺有营养的.慢慢补. A .ASCII Addition pro:用一定的形式表示1到9,让你计算加法. sol:模拟. solved by fzl; #include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; ; typedef long long ll; ] = { "xxxxxx...xx...xx...xx…
原文链接https://www.cnblogs.com/zhouzhendong/p/Fast-Fourier-Transform.html 多项式 之 快速傅里叶变换(FFT)/数论变换(NTT)/例题与常用套路[入门] 前置技能 对复数以及复平面有一定的了解 对数论要求了解:逆元,原根,中国剩余定理 对分治有充足的认识 对多项式有一定的认识,并会写 $O(n^2)$ 的高精度乘法 本文概要 多项式定义及基本卷积形式 $Karatsuba$ 乘法 多项式的系数表示与点值表示,以及拉格朗日插值法…
先不管旋转操作,考虑化简这个差异值 $$begin{aligned}sum_{i=1}^n(x_i-y_i-c)^2&=sum_{i=1}^n(x_i-y_i)^2+nc^2-2csum_{i=1}^n(x_i-y_i)\&=sum_{i=1}^nx_i^2+sum_{i=1}^ny_i^2+nc^2-2csum_{i=1}^n(x_i-y_i)-2sum_{i=1}^nx_iy_iend{aligned}$$ 注意到$sum x^2+sum y^2$是常数,先不管 可以发现,这是一个关于…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
A. ASCII Addition 模拟 #include <iostream> #include <sstream> #include <algorithm> #include <cstdio> #include <cmath> #include <set> #include <map> #include <queue> #include <string> #include <cstring…
Problem E. Explicit Formula Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100610 Description Consider 10 Boolean variables x1, x2, x3, x4, x5, x6, x7, x8, x9, and x10. Consider all pairs and triplets of distinct variables amon…
题目链接:https://codeforces.com/gym/102361/problem/A 题意:给定二维平面上的\(n\)个点,\(q\)次询问,每次加入一个点,询问平面上有几个包含该点的直角三角形. 分析:这是一篇鸽了很久的题解,主要原因就是现场赛的时候这题惨遭卡常,锅++.现在回过头来想这题,主要问题出在现场赛时误判了\(map\)的时间复杂度,把极角排序的正确想法成功叉掉,以及现场赛时候的共线计数使用了\(gcd\),使得整体复杂度上升.(但还是有大佬拿gcd思想过了,我太菜了)现…
Mr. Potato Head has been promoted and now is a math professor at the UNAL. For his first course he is willing to teach hard subjects, so at the moment he is teaching how to add and subtract fractions. To complete his course the students have to do a…
http://codeforces.com/gym/100633/problem/J 其实这个解法不难学的,不需要太多的数学.但是证明的话,我可能给不了严格的证明.可以看看这篇文章 http://www.cnblogs.com/jianglangcaijin/p/3446839.html   膜拜 #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include…
A: Adjustment Office 题意:在一个n*n的矩阵,每个格子的的价值为 (x+y), 现在有操作取一行的值,或者一列的值之后输出这个和, 并且把这些格子上的值归0. 题解:模拟, 分成xy轴就好了. 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("adjustment.in","r",stdin); freopen("adjustme…
B:Biking Duck 题意:现在有一个人要从(x1,y1)点走到(x2,y2)点, 现在走路的速度为v. 还有骑自行车的速度v2,自行车要从某个自行车站到另一个自行车站,现在我们可以视地图的边界都为自行车站,求最小时间是多少. 题解:对于忽视边界的问题,那就是暴力枚举.现在有了边界, 我们假设一个点在边界,那么我们可以枚举另一个自行车点之后,在某个边界上三分另一个点. 下一个情况就是2个自行车站都在边界上,我们三分套三分去维护找到最小值. 思维不怎么麻烦,就是写的有点麻烦. 代码: #in…
A:Banks 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdout); #define LL long long #define ULL unsigned LL #define fi first #define se sec…
B:Broken Watch (别问,问就是队友写的) 代码: import java.awt.List; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.math.BigDecimal; import java.math.BigInteger; import java.sql.Time;…
题目链接:https://codeforces.com/gym/102392/problem/F 题意:被这题题意坑了很久,大意是说有一棵根为 \(1\) 的树,每个节点初始都是白色, \(Alice\) 能在这棵树的某个节点放下一个棋子,并使得该节点变为黑色,然后从 \(Bob\) 开始,两人能轮流移动这个棋子到当前所在节点的任意一个白色的祖先或者后代节点(不需要相邻的节点),并且将移动到的节点染为黑色.谁先不能移动就输了. 分析:看到这道题,大致就是一个树上的博弈问题.我们一开始读错题意,以…
题意:给个最多500 * 500的平面,有半径最多不为1的n个圆,现在给你1e5条线段,问你每条线段和几个圆相交,时限10s 思路: 因为半径<1,那么我其实搜索的范围只要在线段附近就好了.x1 == x2 或者 y1 == y2这个很好理解,不解释.如果是斜率> 0的,那么对于任意的x (x1 <=  x < x2),那我的范围就是floor(yi)~ceil(yi+1),另一种斜率同理.然后我去数每一个格子有没有圆,能不能碰到我线段就行了.每个格子数完标记一下.可以偷个懒,标记…
拓展Lucas #include<cstdio> #include<cstdlib> #include<algorithm> #include<cstring> #include<vector> #define MAXN 100000+10 #define ll long long #define pb push_back #define ft first #define sc second #define mp make_pair using…
题意:给你n个高度,再给你1~n每种高度的数量,已知高度连续的3~5个能消去,问你所给的情况能否全部消去:例:n = 4,给出序列1 2 2 1表示高度1的1个,高度2的2个,高度3的2个,高度4的1个.那么我打出1 1 1(高度1 2 3),1 1 1(高度2 3 4)刚好打完. 思路:对于差分数组我们知道,如果我们对区间L,R加1,那么d[L] += 1, d[R + 1] -= 1,我们可以想象这个序列是由0序列不断进行区间+1操作得到.我们打出差分数组,从左到右遍历,如果遇到正数,那么我…
文章目录 A. Bob and BoB B. Vibranium Gift C. The Blood Moon D. Palindrome and Chocolate E. Jumpy Robot F. Special Birthday Card G. Ainum's Delusion H. String Game I. Freddie's Time Dimension(s) J. Judges Always Win 传送门 挂一个题面的pdfpdfpdf下载链接 和huangyihuangyi…
  D 考虑每个点被删除时其他点对它的贡献,然后发现要求出距离为1~k的点对有多少个. 树分治+FFT.分治时把所有点放一起做一遍FFT,然后减去把每棵子树单独做FFT求出来的值. 复杂度$nlog^2n$ #include<bits/stdc++.h> #define N 270000 #define pi acos(-1) #define ll long long #define inf 0x3f3f3f3f using namespace std; const int p = 10000…
题目链接:acm.hdu.edu.cn/showproblem.php?pid=5695 Problem Description 众所周知,度度熊喜欢各类体育活动.今天,它终于当上了梦寐以求的体育课老师.第一次课上,它发现一个有趣的事情.在上课之前,所有同学要排成一列, 假设最开始每个人有一个唯一的ID,从1到N,在排好队之后,每个同学会找出包括自己在内的前方所有同学的最小ID,作为自己评价这堂课的分数.麻烦的是,有一些同学不希望某个(些)同学排在他(她)前面,在满足这个前提的情况下,新晋体育课…
题意: 给你n个点,m个横着的线段.你能够横移这些线段,可是这些线段的相对位置不能改变.假设一个点,在它的正上方和和正下方都有线段(包含线段的终点).则这个点被视为被"屏蔽".问通过随意平移我们能够遮住最多的点的数量. 解题思路: 首先把全部的点向右平移1000000个单位.然后那些线段位置不变,我们開始平移这些点,这样我们保证点向左移动的距离肯定是一个正数,方便处理. 这样我们仅仅要求出每一个点向左移动的距离后能够满足题目条件的集合W.然后在求出某个距离值在全部的集合中出现最多次数的…