杂七杂八
文章平均质量分 81
Ezereal
这个作者很懒,什么都没留下…
展开
-
HDU 5478 Can you find it 随机化 数学
题意 问你有多少对数,满足a^(k1⋅n+b1) + b^(k2⋅n−k2+1) = 0 (mod C) 题解: 首先你要知道,对于每个a只有唯一对应的b可以满足这个式子,因为当n=1的时候,a^(k1+b1)+b = kk*C 由于b是小于c的,所以只有一个 所以我们可以求出b来,然后我们怎么check这个b究竟是不是呢? 随机化10个数,然后随便chec转载 2016-10-19 08:33:16 · 370 阅读 · 0 评论 -
Educational Codeforces Round 15 E. Analysis of Pathes in Functio(倍增)★ ★
题意:给你一个n和k,然后每个点连出去一条边,接下来的每条边的权值,问每个点走k步会到达哪个点,经过的边中的最小值是多少,经过的边的权值和 思路:因为每个点连出去一条边,所以肯定会有环,而且每个点走k步一定能走到某个点,而且这个点是唯一确定的, 那么利用倍增简单搞搞就行了 代码写得真不错 #include #include #include #include #includ转载 2016-10-12 18:44:43 · 412 阅读 · 0 评论 -
【Codeforces Round 367 (Div 2) E】Working routine 【十字链表 边框维护】 ★
【题意】 有一个n*m(1000*1000)的矩阵 我们做了q(10000)次操作 每次操作交换两个大小相同的子矩阵 让你输出所有操作完成之后的矩阵 【类型】 十字链表 边框维护 【分析】 这道题很容易想到链表的操作方法, 但是我想的是横向的链表。 然而链表实现的话,无法动态维护下标,我们要如何找到要交换位置的起始位置呢? 我们很容易想到一行行暴力走,一直走到要交换位转载 2016-09-08 20:37:00 · 973 阅读 · 0 评论 -
hdu 1109 Run Away(模拟退火算法)
这个算法名字听起来好可怕,,,但是代码却很容易实现 传说中的模拟退火,,从物理学角度上讲,加热后分子会均匀扩散,而且温度越高扩散的距离越大,然后降温后,,扩散的距离也会慢慢的减小,,随后整个状态平衡。 噗,算了,还是从程序的角度思考把。。 刚开始的时候,在(0,0)到(X,Y)这个矩阵中随机取30个点,当作是起始的源点。然后设置步长(开始可能会比较大) 然后就可原创 2015-12-06 17:20:23 · 825 阅读 · 0 评论 -
Educational Codeforces Round 9 E.Thief in a Shop (FFT)★ ★
题意:给定n,k,然后给定n个1000以内的整数,求从中取k个(可重复取同一元素)能组成多少个不同的数,输出所有恰能用k个数组成的情况。 分析:很明显这题只要将数x当做指数项直接去FFT即可,最后输出系数非0的项即可,另最大的数为x,mx=x*k,那么暴力FFT是O(mx*k*logmx),这样显然是不行的,我们可以将k进行快速幂那样的二分加速,那么就变成了O(mx*logmx*logk),其实转载 2016-09-06 16:44:44 · 829 阅读 · 0 评论 -
UESTC 485 Game(康托展开,bfs打表)
题意:给出两个3*3的矩阵,矩阵变换就是每行每列按照环旋转,问走多少步可以到达第二个矩阵。 利用康托展开进行bfs预处理。题目给的一个起始的九宫格,和一个目标的九宫格。 不能直接用目标的九宫格去找起始的九宫格,会超时,应该根据把起始九宫格当作 1 2 3 4 5 6 7 8 9 然后确定目标九宫格是怎么样的,这样就可以直接用之前打的表了。预处理就是处理1 2 3 4 5 6原创 2016-09-04 11:23:32 · 478 阅读 · 0 评论 -
Codeforces 707D Persistent Bookcase(bitset+dfs)★
题意:有一个有n行m列的书架,初始为空,现有q次操作,要求输出每次操作完之后书架上共有几本书。 操作分为4种: 1.在第i行第j列放入一本书。如果在操作之前第i行第j列已经有书了,那么忽略此次操作。 2.将第i行第j列的书拿走。如果在操作之前第i行第j列没有书,那么忽略此次操作。 3.将原创 2016-09-06 21:58:36 · 1317 阅读 · 0 评论 -
2016 ACM/ICPC Asia Regional Qingdao hdu5890 Eighty seven(DP+bitset优化妙用)
题意:50个数,10W个询问,每次问删掉第i,j,k个数后,是否存在一种选10个数和为87的方案,只需要输出 ’Yes’ 或者 ’No’ 题解:暴力:不同的询问大概2W个,每个暴力bitset DP,抠一抠能卡着过。优化1:先求出一组解,如果询问和解没交就是’Yes’,否则暴力,不同的询问大概1W个;优化2:先预处理出所有询问的答案,能方便的复用之前的DP数组,不用每次从头开始重新求。转载 2016-09-18 18:44:33 · 403 阅读 · 0 评论 -
UVALive 6886 Golf Bot FFT
题意 给你n个数,然后再给你一个数k,问这个数是否就是那n个数中的一个,或者说这个数可以由这n个数中的两个构成(可以是自己*2) 题解: 裸的不行的FFT,直接做就好了。 #include using namespace std; const int N = 1200040; const double pi = acos(-1.0); int len; struct C转载 2016-10-19 08:40:39 · 517 阅读 · 0 评论