ACM 矩阵二分
文章平均质量分 91
huixisheng
无所谓结果如何,只要一直坚持并努力就好!!
展开
-
A Simple Math Problem hdu1757
/* 这是一个典型的二分矩阵的问题,我弄了好久才弄出来,而且参考了2个人的代码; 我不知为何,我一开始构造的矩阵总是得不出正确的答案。a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 1 1 1 1 1 1原创 2010-03-20 11:06:00 · 351 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=3519
<br />/* 矩阵乘法的题目 F[n] = 2 * F[n - 1] + 2 ^ (n - 3) - F[n - 3] */#include <iostream>#include <cstdio>#include <algorithm>#include <string.h>using namespace std;int MOD = 10007;struct Matrix{ int map[4][4]; Matrix () { for (i原创 2010-08-10 19:27:00 · 502 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=3524 (奇偶矩阵乘法 打表)
<br />/* * 比赛的时候卡了很久,一直找不到规律 * 一开我sb一样的打表的公式错了,经zed的数据我才改对 * 当打到15项的时候是发现 * F[n] = 2 * F[n - 1] - 2 if(n % 2 == 0) else 2 * F[n - 1] - 1 * 赛后xwc 说可以矩阵乘法,比赛的时候感觉要奇偶讨论很麻烦,其实很简单的,又学了一招 * F[n] = 4 * F[n - 2] - 5 if(n % 2 == 1) else 2 * F[n原创 2010-08-10 19:40:00 · 575 阅读 · 0 评论 -
Fzu 1683
<br />http://acm.fzu.edu.cn/problem.php?pid=1683<br />/* 推推公式很明显*/#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int mod = 2009;struct Mat { int num[4][4]; Mat() { for(int i = 0; i < 4; i++) fo原创 2010-07-19 19:13:00 · 437 阅读 · 0 评论 -
hdu 2276 Kiki & Little Kiki 2 矩阵的变形
<br />/* 矩阵的变形 有一圈灯首尾相连,现在给你初始灯的亮灭情况, 问你按照这种规则如果这个点左边的灯亮着, 那么它改变自己的情况模拟N次后的最终情况 模拟之后就可以课容易得到一个递推试 len = 510001 111000 001100 000110 000011 1*/#include <iostream>#include <cstdio>#include <cstring>using namespace std;const原创 2010-07-18 15:03:00 · 419 阅读 · 0 评论 -
hdu 2855 Fibonacci Check-up(犀利的推导公式)
<br /> <br /> <br />/* 一开始对这个题目无法下手的,原来这是去年联合比赛的题目*/#include <iostream>#include <cstdio>using namespace std;struct Mat{ int num[2][2]; Mat() { for(int i = 0; i < 2; i++) for(int j = 0; j < 2; j++) num[i][j] = 0; }};原创 2010-07-19 10:33:00 · 587 阅读 · 0 评论 -
hdu 2971 Tower(注意负数的取模处理)
<br />先假设a2 = t, 题目给定了递推关系:An = 2 * t * An-1 - An-2 (n > 2),初值A1 = 1, A2 = t;题目要求Sn = An ^ 2 + An-1 ^ 2 + ... + A1 ^ 2。<br /> 反复应用递推关系得到:<br /><br /> 然后Sn-1利用相同的方式展开,把4tAn-2An-3约去,得到:<br /><br /> 这样就比较容易得出Sn的通项:<br /><br /><br /> 当初这个题目之所以没想到这种方法,就是因为一原创 2010-07-18 22:00:00 · 767 阅读 · 0 评论 -
hdu 3117 Fibonacci Numbers
<br />/* 关键卡在求前4位,参考了网上的 对于很大的数,要很容易想到log10 我们要搬出Fibonacci的通项公式—— f(n)=1/sqrt(5)(((1+sqrt(5))/2)^n+((1-sqrt(5))/2)^n) 假设F[n]可以表示成 t * 10^k(t是一个小数),那么对于F[n]取对数log10,答案就为log10 t + K, 此时很明显log10 t<1,于是我们去除整数部分,就得到了log10 t ,再用pow(10,log10 t)我们就还原原创 2010-07-17 10:52:00 · 422 阅读 · 0 评论 -
zoj 2853 Evolution
<br /><br /> <br /><br />/*<br />第一次写的时候,因为没有注意导致栈溢出 <br />zoj 的这个关于矩阵的题目让我感觉自己对矩阵还不是很了解,感觉这个变形让人很想不到的<br />做了这么多算是把矩阵这个内容掌握了,接下。。。 <br />*/<br />#include <iostream>//22316032010-07-19 18:35:02 Accepted2853C++4460840悔惜晟<br />#include <cstdio><br />#include原创 2010-07-20 00:58:00 · 645 阅读 · 0 评论 -
Zoj Just Pour the Water 2974
<br /> /* 题目总是给人一种很难转换的感觉 num[i][j] 表示从i 倒水给 j的 量*/#include <iostream>#include <cstdio>#include <cstring>using namespace std;struct Mat{ double num[25][25]; Mat() { for(int i = 0; i < 21; i++) for(int j = 0; j < 21; j++) n原创 2010-07-20 00:45:00 · 503 阅读 · 0 评论 -
hdu 2604 Queuing
<br />/* 本题的关键是推递推公式 n - 4 n - 3 n - 2 n - 1 f f m 只能填m f m m 只能填m m f m f 均可以填 m m m f 均可以填 发现n - 1后面填m都可以 F[n] = F[n - 1] + ? 发现n - 1后面填f mmf 可以查到所有 n - 3 的后面 F[n] = F[n - 1] + F[n - 3] + ? 发现n - 1后面原创 2010-07-18 22:13:00 · 592 阅读 · 0 评论 -
Gauss Fibonacci hdu1588
/* 很明显要用矩阵乘法 求的是F(b) + F(b + k) + ... + F((n - 1) * k + b) 的和 A ^ (k + m) = A ^ k * A ^ m A = 0 1 1 1 K = F(k) = I * A ^ k B = F(b) = I * A ^ b B * |K I| ^ n原创 2010-04-08 12:04:00 · 717 阅读 · 0 评论 -
ZOJ_2105 Number Sequence
/*矩阵二分Number Sequence--------------------------------------------------------------------------------Time Limit: 1 Second Memory Limit: 32768 KB --------------------------------------------原创 2010-04-12 20:17:00 · 384 阅读 · 0 评论 -
Chinese Rings 2842 hdu (http://qzc.zgz.cn/Y-jiulianhuan3.htm 很流氓的网址)
/* http://qzc.zgz.cn/Y-jiulianhuan3.htm 原来这是一个游戏 记从始点到前k个环在上用f(k)步,考虑怎么上这前k个环呢?可以先上前k-1个环,用f(k-1)步, 再下前k-2个环,用f(k-2)步。此时仅有第k-1个环在上,可以进行动作Q上k号环,用1步, 然后再上前k-2个环,用f(k-2)步。f(k)就是以上各个动作所需步数的和,原创 2010-03-27 17:30:00 · 674 阅读 · 0 评论 -
Tr A hdu 1575
/* 其实跟自己以前写的是貌似没有区别的*/#include #include #include using namespace std;int N;const int mod = 9973;struct Mat{ int num[11][11]; Mat() { for(int i = 0; i < 11; i++) for(i原创 2010-03-20 11:47:00 · 504 阅读 · 0 评论 -
Problem of Precision hdu2256
http://acm.hdu.edu.cn/showproblem.php?pid=2256 //运行15ms的时候出错了,哪位大牛帮我看下! /* 这个矩阵的构造有点稍微不一样的*/#include #include using namespace std;const int mod = 1024;struct Mat{ int a; int b;原创 2010-03-22 17:38:00 · 423 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=3521 (暴力)
<br /><br />/*<br /> * 早知比赛的时候试下了,暴力居然行的 5555555<br /> */<br />#include <iostream><br />#include <cstdio><br />#include <cmath><br />#include <cstring><br />using namespace std;<br /> <br />const int N = 105;<br />struct Mat{<br />double num[N][N];<br />M原创 2010-08-10 20:55:00 · 558 阅读 · 0 评论