https://vijos.org/p/1049 给出一个序列,含n个数.然后是m个置换,求对初始序列依次进行k次置换,求最后的序列. 先看一个置换.把置换表示成矩阵的形式.然后将m个置换乘起来.那么初始序列首先运行这个置换k/m次.然后顺次运行前k%m个置换,最后乘上初始矩阵. 最后注意矩阵乘法的顺序.A*B != B*A. #include <stdio.h> #include <iostream> #include <map> #include <set&g…
https://vijos.org/p/1049 P1049送给圣诞夜的礼品 Accepted 标签:组合数学送给圣诞夜的礼物[显示标签]     返回代码界面 | 关闭   Pascal Pascal C C++ Python 2.x Java 取消 | 清空代码   描述 当小精灵们把贺卡都书写好了之后.礼品准备部的小精灵们已经把所有的礼品都制作好了.可是由于精神消耗的缘故,他们所做的礼品的质量越来越小,也就是说越来越不让圣诞老人很满意.可是这又是没有办法的事情. 于是圣诞老人把礼品准备部的…
vijosP1049 送给圣诞夜的礼品 链接:https://vijos.org/p/1049 [思路] 快速幂+矩阵转换. 将m次矩阵的转换看作是一次快速幂中的乘法操作,这样可以用O(log(k/m))的时间求出矩阵进行k/m次操作后的结果,然后把剩下的k%m次矩阵转换补上即可. [代码] #include<iostream> #include<cstring> #define FOR(a,b,c) for(int a=(b);a<=(c);a++) using names…
任意门:https://vijos.org/p/1049 描述 当小精灵们把贺卡都书写好了之后.礼品准备部的小精灵们已经把所有的礼品都制作好了.可是由于精神消耗的缘故,他们所做的礼品的质量越来越小,也就是说越来越不让圣诞老人很满意.可是这又是没有办法的事情. 于是圣诞老人把礼品准备部的小精灵们聚集起来,说明了自己的看法:“现在你们有n个礼品,其质量也就是降序排列的.那么为了使得这个礼品序列保持平均,不像现在这样很有规律的降序,我这里有一个列表.”“列表共有m行,这m行都称作操作(不是序列),每一…
题目链接 描述 当小精灵们把贺卡都书写好了之后.礼品准备部的小精灵们已经把所有的礼品都制作好了.可是由于精神消耗的缘故,他们所做的礼品的质量越来越小,也就是说越来越不让圣诞老人很满意.可是这又是没有办法的事情. 于是圣诞老人把礼品准备部的小精灵们聚集起来,说明了自己的看法:“现在你们有n个礼品,其质量也就是降序排列的.那么为了使得这个礼品序列保持平均,不像现在这样很有规律的降序,我这里有一个列表.”“列表共有m行,这m行都称作操作(不是序列),每一行有n个数字,这些数字互不相同而且每个数字都在1…
https://vijos.org/p/1049   非常普通的矩阵快速幂... 但是我 第一次写忘了矩阵不能交换律... 第一二次提交RE直到看到题解才发现这道题不能用递归快速幂... 第三次提交成了c编译错误... 第四次提交WA发现写循环快速幂的时候少清零了一个f... 所以提交了五次才终于对了,什么垃圾的代码能力...通过率杀手... 希望下次能捡起我的脑子.... 代码很简单 如下 #include<cstdio> #include<cstring> #include&l…
这题犯了两个sb错误,写下来,为以后做个警告 一.mul过程中将k作为了循环变量 二.看错了题…… 题目中说是数到k行,而我却以为数k遍…… 做矩阵乘法,只要记住一句话:置换一定可以写成矩阵的形式! 并且:矩阵满足结合律,不满足交换率! 代码: ..,..] of longint; ..] of matrix; b,c:matrix; i,j,n,m,k,x:longint; ans,d:..] of longint; procedure tiao(x:matrix); var i,j:long…
题面 描述 当小精灵们把贺卡都书写好了之后.礼品准备部的小精灵们已经把所有的礼品都制作好了.可是由于精神消耗的缘故,他们所做的礼品的质量越来越小,也就是说越来越不让圣诞老人很满意.可是这又是没有办法的事情. 于是圣诞老人把礼品准备部的小精灵们聚集起来,说明了自己的看法:"现在你们有n个礼品,其质量也就是降序排列的.那么为了使得这个礼品序列保持平均,不像现在这样很有规律的降序,我这里有一个列表." "列表共有m行,这m行都称作操作(不是序列),每一行有n个数字,这些数字互不相同…
送给圣诞夜的极光 题目链接:https://www.vijos.org/p/1051 这是一道很水很水的宽搜水题,我主要是觉得自己在搜素这一块有点生疏于是随便找了一题练手,找到这么一道水题,原本以为可以一次过的,但是状况百出,我并不是很擅长bfs,我以前一直用的Pascal写bfs,但是Pascal没有队列,所以没有c++方便,所以这题我就直接用队列做了,然后完美的炸空间炸时间,后来改成递归调用才通过 思路:这一道题和一道宽搜入门题很像,基本上是一样的,这道题叫细胞个数 链接:http://co…
1293 送给圣诞夜的极光  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 圣诞老人回到了北极圣诞区,已经快到12点了.也就是说极光表演要开始了.这里的极光不是极地特有的自然极光景象.而是圣诞老人主持的人造极光.  轰隆隆……烟花响起(来自中国的浏阳花炮之乡).接下来就是极光表演了.  人造极光其实就是空中的一幅幅n*m的点阵图像.只是因为特别明亮而吸引了很多很多小精灵的目光,也成为了圣诞夜最…
1293 送给圣诞夜的极光  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold     题目描述 Description 圣诞老人回到了北极圣诞区,已经快到12点了.也就是说极光表演要开始了.这里的极光不是极地特有的自然极光景象.而是圣诞老人主持的人造极光.  轰隆隆……烟花响起(来自中国的浏阳花炮之乡).接下来就是极光表演了.  人造极光其实就是空中的一幅幅n*m的点阵图像.只是因为特别明亮而吸引了很多很多小精灵的目光,也成为了圣诞夜最美丽的一刻.  然而在…
题意 顺次给出 $m$个置换,反复使用这 $m$ 个置换对一个长为 $n$ 初始序列进行操作,问 $k$ 次置换后的序列.$m<=10, k<2^31$. 题目链接 分析 对序列的置换可表示成乘上一个矩阵,例如 $$\begin{bmatrix}0 & 0 &  0& 0 & 0 & 1 & 0\\ 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 1 &…
试题请參见: https://vijos.org/p/1051 题目概述 圣诞老人回到了北极圣诞区, 已经快到12点了. 也就是说极光表演要開始了. 这里的极光不是极地特有的自然极光景象. 而是圣诞老人主持的人造极光.  轰隆隆--烟花响起(来自中国的浏阳花炮之乡). 接下来就是极光表演了.  人造极光事实上就是空中的一幅幅n*m的点阵图像. 仅仅是由于特别明亮而吸引了非常多非常多小精灵的目光, 也成为了圣诞夜最漂亮的一刻.  然而在每幅n*m的点阵图像中, 每个点仅仅有发光和不发光两种状态.…
题目背景 圣诞夜系列~~ 题目描述 圣诞老人回到了北极圣诞区,已经快到12点了.也就是说极光表演要开始了.这里的极光不是极地特有的自然极光景象.而是圣诞老人主持的人造极光. 轰隆隆……烟花响起(来自中国的浏阳花炮之乡).接下来就是极光表演了. 人造极光其实就是空中的一幅幅n*m的点阵图像.只是因为特别明亮而吸引了很多很多小精灵的目光,也成为了圣诞夜最美丽的一刻. 然而在每幅n*m的点阵图像中,每一个点只有发光和不发光两种状态.对于所有的发光的点,在空中就形成了美丽的图画.而这个图画是以若干个(s…
题目链接: https://vijos.org/p/1051 题目大意: 给一张‘-’和‘#’的图,规定曼哈顿距离小于等于2的‘#’属于同一图案,求图案数.[曼哈顿距离:对于A(x1,y1)和B(x2,y2),A和B之间的曼哈顿距离为|x1-x2|+|y1-y2|] 题目思路: [宽搜] 找到一个没访问过的#,BFS把同图案的所有#标记.最后输出答案即可 // //by coolxxx // #include<iostream> #include<algorithm> #inclu…
http://poj.org/problem?id=3070 按已构造好的矩阵,那么该矩阵的n次方的右上角的数便是f[n]. #include <stdio.h> #include <iostream> #include <map> #include <set> #include <list> #include <stack> #include <vector> #include <math.h> #inclu…
https://www.vijos.org/p/1067 非常easy推出递推式f[n] = f[n-1]+f[n-2]+......+f[n-k]. 构造矩阵的方法:构造一个k*k的矩阵.当中右上角的(k-1)*(k-1)的矩阵是单位矩阵,第k行的每一个数分别相应f[n-1],f[n-2],,f[n-k]的系数.然后构造一个k*1的矩阵,它的第i行代表f[i](1 <= i <= k),是经过直接递推得到的.设ans[][]是第一个矩阵的n-k次幂乘上第二个矩阵.f[n]就是ans[k][1…
题目链接:https://www.vijos.org/p/1048 很多人一看就想出了思路,不就是一个裸的dfs蛮...但是..在n<=50的情况下,朴素会直接tle..... 然后我就开始剪枝,剪了很多地方,然后多过了一个点.....然后我就发现我的剪枝和我的dfs打的不行 然后我们先看看朴素的打法(打法多,我是一种非常原始的朴素算法) bool check(int x,int dep){ ;i<=dep;i++) ); ; } void dfs(int dep,int pos){ ){an…
调了好久... #include <cstdio> #include <queue> using namespace std; char a[110*110]; /************************************** 000000000000 000000000000 00----####00 00###----#00 //like dis 00##--##--00 000000000000 000000000000 ********************…
题目描述-->p1454 圣诞夜的极光 题意概括: 寻找联通块数量,这里的连通块定义与其他的不同. 这里定义为曼哈顿距离不超过2的都属于一个联通块. 什么?不知道曼哈顿距离是啥? 曼哈顿距离简易概括->|x1-x2|+|y1-y2|,两点之间横纵坐标的差的绝对值之和. 详细解释->曼哈顿距离 分析 看到大家都在说12个方向,具体是哪12个方向呢? 假设黄色点为我们当前所在节点.那我们图中标出的红色点,都是满足与黄色点曼哈顿距离为2的点. 但这才有8个方向啊! 回望题意,曼哈顿距离不超过2…
本文来自:http://www.matrix67.com/blog/archives/tag/poj大牛的博文学习学习 节选如下部分:矩阵乘法的两个重要性质:一,矩阵乘法不满足交换律:二,矩阵乘法满足结合律经典题目1 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置.操作有平移.缩放.翻转和旋转    这 里的操作是对所有点同时进行的.其中翻转是以坐标轴为对称轴进行翻转(两种情况),旋转则以原点为中心.如果对每个点分别进行模拟,那么m个操作总共耗时 O(mn).利用矩阵乘法可…
好像目前还没有这方面题目的总结.这几天连续看到四个问这类题目的人,今天在这里简单写一下.这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质.    不要以为数学中的矩阵也是黑色屏幕上不断变化的绿色字符.在数学中,一个矩阵说穿了就是一个二维数组.一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵第j列上的m个数对应相乘后所有m个乘积的和.比如,下面的算式表示一个2行2列的矩阵乘以2行3列的矩阵…
P1454 圣诞夜的极光 题目背景 圣诞夜系列~~ 题目描述 圣诞老人回到了北极圣诞区,已经快到12点了.也就是说极光表演要开始了.这里的极光不是极地特有的自然极光景象.而是圣诞老人主持的人造极光. 轰隆隆……烟花响起(来自中国的浏阳花炮之乡).接下来就是极光表演了. 人造极光其实就是空中的一幅幅n*m的点阵图像.只是因为特别明亮而吸引了很多很多小精灵的目光,也成为了圣诞夜最美丽的一刻. 然而在每幅n*m的点阵图像中,每一个点只有发光和不发光两种状态.对于所有的发光的点,在空中就形成了美丽的图画…
P1454 圣诞夜的极光 题目背景 圣诞夜系列~~ 题目描述 圣诞老人回到了北极圣诞区,已经快到12点了.也就是说极光表演要开始了.这里的极光不是极地特有的自然极光景象.而是圣诞老人主持的人造极光. 轰隆隆……烟花响起(来自中国的浏阳花炮之乡).接下来就是极光表演了. 人造极光其实就是空中的一幅幅n*m的点阵图像.只是因为特别明亮而吸引了很多很多小精灵的目光,也成为了圣诞夜最美丽的一刻. 然而在每幅n*m的点阵图像中,每一个点只有发光和不发光两种状态.对于所有的发光的点,在空中就形成了美丽的图画…
POJ1160, post office.动态规划的经典题目.呃,又是经典题目,DP部分的经典题目怎就这么多.木有办法,事实就这样. 求:在村庄内建邮局,要使村庄到邮局的距离和最小. 设有m个村庄,分别为 V1 V2 V3 - Vm, 要建n个邮局,分别为P1 P2 P3 - Pn. 在DP的问题中,经常有从m个物体中选n个物体的情况,本题显然也属于这种情况.一般可以这样考虑:假设已经选了1个,那么就成了在m-1个中选n-1个的问题了. 对于此题,也可以考虑先建一个邮局.建在哪里呢?不妨设,该邮…
/** * Find the contiguous subarray within an array (containing at least one number) * which has the largest sum. For example, given the array [-2,1,-3,4,-1,2,1,-5,4], the contiguous subarray [4,-1,2,1] has the largest sum = 6. click to show more prac…
Warcraft III 守望者的烦恼 背景 守望者-warden,长期在暗夜精灵的的首都艾萨琳内担任视察监狱的任务,监狱是成长条行的,守望者warden拥有一个技能名叫"闪烁",这个技能可以把她传送到后面的监狱内查看,她比较懒,一般不查看完所有的监狱,只是从入口进入,然后再从出口出来就算完成任务了. 描述 头脑并不发达的warden最近在思考一个问题,她的闪烁技能是可以升级的,k级的闪烁技能最多可以向前移动k个监狱,一共有n个监狱要视察,她从入口进去,一路上有n个监狱,而且不会往回走…
/***********Ryear.java begin********************/ import java.util.Scanner;public class Ryear { /** * @param args */ public static void main(String[] args) { /** * 编写程序,判断给定的某个年份是否是闰年. * 闰年的判断规则如下: * (1)若某个年份能被4整除但不能被100整除,则是闰年. * (2)若某个年份能被400整除,则也是…
JAVA经典算法40例 [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   1.程序分析:   兔子的规律为数列1,1,2,3,5,8,13,21....   public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++) System.out.println(f(i))…
在算法竞赛中,很多问题是来不及用数学公式推导出来的.或者说根本就找不到数学规律,这时我们就需要使用枚举来暴力破解. 不过枚举也是需要脑子的,一味的暴力只能超时.因此我这里选择了几道mooc上经典的题目来做复习. 1.完美立方. 思路: 从2到N枚举a的值,2到a枚举d的值,2到d的枚举b的值,2到c枚举b的值.当 满足a*a*a==b*b*b+c*c*c+d*d*d 的时候对结果输出. 代码如下: #include <iostream> using namespace std; int mai…