摘要:
首先来看一下Sample里的第一组数据。1 2 2 1 2经过一次变换之后就成了5 5 5 5 4它的原理就是a0 a1 a2 a3 a4->(a4+a0+a1) (a0+a1+a2) (a1+a2+a3) (a2+a3+a4) (a3+a4+a0)如果用矩阵相乘来描述,那就可以表述为1xN和NxN的矩阵相乘,结果仍为1xN矩阵a = 1 2 2 1 2 b = 1 1 0 0 11 1 1 0 00 1 1 1 00 0 1 1 11 0 0 1 1a * b = 5 5 5 5 4所以最终结果就是:a * (b^k)线性代数不合格的同鞋表示压力很大。。对一个NxN矩阵求k次方,而且这 阅读全文
摘要:
2个星球周期为a,b。则相差半周的长度为a*b/(2*abs(a-b)),对于n个只需求这n个分数的最小公倍数即可!公式:分数的最小公倍数 = 分子的最小公倍数/分母的最大公约数由于涉及到大数所以用java写的方便! 1 import java.math.*; 2 import java.util.*; 3 4 public class Main { 5 public static void main(String arg[]){ 6 Scanner cin = new Scanner(System.in); 7 int n = cin.nextInt... 阅读全文
摘要:
由于k的范围是0-2^31,而且x,y,z都是正整数,由题易知道2#include#include#include#include#include#include#include#define ll __int64#define pi acos(-1.0)#define MAX 50000using namespace std;ll pows(ll a,ll b){ ll ans=1; while(b){ if(b&1) ans*=a; b>>=1; a*=a; } return ans;}int main(){ int... 阅读全文
摘要:
置换群就可以搞定!!!注意下格式就好了…… 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #define ll __int6410 #define pi acos(-1.0)11 #define MAX 5000012 using namespace std;13 int code[202],an[202];14 char str1[202],str2[202];15 void init(int n)16 {17 int i,j,t;18 for... 阅读全文
摘要:
思路:仔细读题,看到FARMER是两两交换牛的顺序进行排序的话,应该就往置换上靠拢,而这个题果然是置换的应用(有的解题报告上说是置换群,其实这只是单个置换,不用让它构成群)。我们来将这些无序的牛抽象成一个置换,一次移动就是对一对元素置换。举个例子: 那么我们用置换环表示应该是(1 6 5)(2 3 4)这样两个3阶环,也就是说这六头牛是两个无序子序列,每个子序列内部按坐标排好序则整体有序,既然要使代价最小,我们就应该让置换的次数尽量少,置换的两个数和尽量小。根据上面的划分,我们知道在一个长度为m的环中至少要移动... 阅读全文