The Fourth Dimension Space

枯叶北风寒,忽然年以残,念往昔,语默心酸。二十光阴无一物,韶光贱,寐难安; 不畏形影单,道途阻且慢,哪曲折,如渡飞湍。斩浪劈波酬壮志,同把酒,共言欢! -如梦令

#

一些数论方面的好题

数学类题目小结 (原创)
2009-11-20 22:10

数学类题目小结

    从放暑假前周sir给我讲了一个用polya计数法和burnside定理做的题目(pku2409)后,突然觉得组合数学挺有意思,然后从那时起到现在几乎都在做这类的题目。
做到现在感觉这类题目的一些基本知识点都差不多有所了解了,水题也刷了不少,但还有很多难题自己实在是做不动,所以准备把这类题目先放一放,然后把前段时间做的水题整理一下(供以后的初学者参考,大牛就不要看了哈,都是水题)。剩下的比较难的题目就慢慢来吧,以后做出来再不上,这个小结会不断地更新。也希望大家有好的题目可以推荐一下,分享一下哈。

     感谢:周sir,J_factory和福州大学神牛aekdycoin,大连理工大学神牛czyuan。

不扯了,进入主题:

    1.burnside定理,polya计数法
这个专题我单独写了个小结,大家可以简单参考一下:polya 计数法,burnside定理小结

    2.置换,置换的运算
    置换的概念还是比较好理解的,《组合数学》里面有讲。对于置换的幂运算大家可以参考一下潘震皓的那篇《置换群快速幂运算研究与探讨》,写的很好。
*简单题:(应该理解概念就可以了)
pku3270 Cow Sorting
http://acm.pku.edu.cn/JudgeOnline/problem?id=3270
    pku1026 Cipher
http://acm.pku.edu.cn/JudgeOnline/problem?id=1026
    *置换幂运算
pku1721 CARDS
http://162.105.81.212/JudgeOnline/problem?id=1721
    pku3128 Leonardo's Notebook
http://162.105.81.212/JudgeOnline/problem?id=3128
    *推荐:(不错的应用)
pku3590 The shuffle Problem
http://162.105.81.212/JudgeOnline/problem?id=3590

    3.素数,整数分解,欧拉函数
素数是可能数论里最永恒,最经典的问题了(我们的队名就叫PrimeMusic^-^)。素数的判断,筛法求素数,大素数的判断···还有很多其他问题都会用到素数。
*最水最水的:(心情不爽时用来解闷吧)
pku1365 Prime Land
pku2034 Anti-prime Sequences
pku2739 Sum of Consecutive Prime Numbers
pku3518 Prime Gap
pku3126 Prime Path
pku1595 Prime Cuts
pku3641 Pseudoprime numbers
pku2191 Mersenne Composite Numbers
pku1730 Perfect Pth Powers
pku2262 Goldbach's Conjecture
pku2909 Goldbach's Conjecture
*筛法
pku2689 Prime Distance(很好的一个应用)
http://162.105.81.212/JudgeOnline/problem?id=2689
    *反素数
zoj2562 More Divisors
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2562
    *素数判断,整数分解
这两题都要用到miller_rabin的素数判断和pollard_rho的整数分解,算法书上都会有,应该是属于模板题吧,不过最好看懂自己敲一遍。
pku1811 Prime Test
http://acm.pku.edu.cn/JudgeOnline/problem?id=1811
    pku2429 GCD & LCM Inverse
http://acm.pku.edu.cn/JudgeOnline/problem?id=2429
    *欧拉函数
数论里很多地方都能用到欧拉函数,很重要的。
pku1284 Primitive Roots (很水)
http://acm.pku.edu.cn/JudgeOnline/problem?id=1284
    pku2407 Relatives (很水)
http://acm.pku.edu.cn/JudgeOnline/problem?id=2407
    pku2773 Happy 2006
http://162.105.81.212/JudgeOnline/problem?id=2773
    pku2478 Farey Sequence (快速求欧拉函数)
http://162.105.81.212/JudgeOnline/problem?id=2478
    pku3090 Visible Lattice Points (法雷级数)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3090
    *推荐:(欧拉函数,费马小定理)
pku3358 Period of an Infinite Binary Expansion
http://acm.pku.edu.cn/JudgeOnline/problem?id=3358
    *整数分解
这个也很重要的耶,包括大数的表示方法。
pku2992 Divisors
http://acm.pku.edu.cn/JudgeOnline/problem?id=2992
    fzu1753 Another Easy Problem
http://acm.fzu.edu.cn/problem.php?pid=1753
    hit2813 Garden visiting
http://acm-hit.sunner.cn/judge/show.php?Proid=2813
    pku3101 Astronomy (分数的最小公倍数)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3101

    4.扩展欧几里得,线性同余,中国剩余定理
    这应该是数论里比较重要的一个部分吧,这类的题目也挺多,具体的内容最好先看看数论书,我也整理过一些,可以参考参考:
http://hi.baidu.com/%B1%BF%D0%A1%BA%A2%5Fshw/blog/item/0676025d56a87d4afbf2c093.html
    *简单题
pku1006 Biorhythms
http://acm.pku.edu.cn/JudgeOnline/problem?id=1006
    pku1061 青蛙的约会
http://acm.pku.edu.cn/JudgeOnline/problem?id=1061
    pku2891 Strange Way to Express Integers
http://acm.pku.edu.cn/JudgeOnline/problem?id=2891
    pku2115 C Looooops
http://acm.pku.edu.cn/JudgeOnline/problem?id=2115
    pku2142 The Balance
http://162.105.81.212/JudgeOnline/problem?id=2142
    *强烈推荐
sgu106 The equation
http://acm.sgu.ru/problem.php?contest=0&problem=106
    pku3708 Recurrent Function (经典)
http://acm.pku.edu.cn/JudgeOnline/problem?id=3708

    5.约瑟夫环问题
这个问题还是比较有意思的,不是很难。
*简单题
pku3517 And Then There Was One
http://acm.pku.edu.cn/JudgeOnline/problem?id=3517
    pku1781 In Danger
http://acm.pku.edu.cn/JudgeOnline/problem?id=1781
    pku1012 Joseph
http://162.105.81.212/JudgeOnline/problem?id=1012
    pku2244 Eeny Meeny Moo
http://162.105.81.212/JudgeOnline/problem?id=2244
    *推荐
pku2886 Who Gets the Most Candies?
http://162.105.81.212/JudgeOnline/problem?id=2886

    6.高斯消元法解方程
其实解方程并不是很难,就是按线性代数中学的那种方法,把系数矩阵化成上三角矩阵或数量矩阵,不过有些题目要判断是否有解,或枚举所有解。不过这类题目我认为比较难的还是怎么去建立这个方程组,这个理解了,就没什么大问题了。
*简单题
pku1222 EXTENDED LIGHTS OUT
http://162.105.81.212/JudgeOnline/problem?id=1222
    pku1681 Painter's Problem
http://162.105.81.212/JudgeOnline/problem?id=1681
    pku1830 开关问题
http://162.105.81.212/JudgeOnline/problem?id=1830
    *推荐
pku2947 Widget Factory
http://162.105.81.212/JudgeOnline/problem?id=2947
    pku2065 SETI
http://162.105.81.212/JudgeOnline/problem?id=2065
    *强烈推荐
pku1753 Flip Game
http://162.105.81.212/JudgeOnline/problem?id=1753
    pku3185 The Water Bowls
http://162.105.81.212/JudgeOnline/problem?id=3185
    *变态题
pku1487 Single-Player Games
http://162.105.81.212/JudgeOnline/problem?id=1487
  

7.矩阵
用矩阵来解决问题确实很常见,但我现在用到还不是很好,很多难题我还不会做。建议大家可以去看Matrix67的那篇关于矩阵的十个问题,确实很经典,但不太好看懂。
*简单
pku3070 Fibonacci
http://162.105.81.212/JudgeOnline/problem?id=3070
    pku3233 Matrix Power Series
http://162.105.81.212/JudgeOnline/problem?id=3233
    pku3735 Training little cats
http://162.105.81.212/JudgeOnline/problem?id=3735

    8.高次同余方程
有关这个问题我应该是没什么发言权了,A^B%C=D,我现在只会求D和B,唉,很想知道A该怎么求。就先推荐几道题目吧,这里涉及到了一个baby-step,giant-step算法。
fzu1759 Super A^B mod C
http://acm.fzu.edu.cn/problem.php?pid=1759
    pku3243 Clever Y
http://162.105.81.212/JudgeOnline/problem?id=3243
    pku2417 Discrete Logging
http://162.105.81.212/JudgeOnline/problem?id=2417
    hdu2815 Mod Tree
http://acm.hdu.edu.cn/showproblem.php?pid=2815

    9.容斥原理,鸽巢原理
    很有用的两个定理,但好像单独考这两个定理的不是很多。
*鸽巢原理
pku2365 Find a multiple
http://162.105.81.212/JudgeOnline/problem?id=2356
    pku3370 Halloween treats
http://162.105.81.212/JudgeOnline/problem?id=3370
    *容斥原理
hdu1695 GCD
http://acm.hdu.edu.cn/showproblem.php?pid=1695
    hdu2461 Rectangles
http://acm.hdu.edu.cn/showproblem.php?pid=2461

    10.找规律,推公式
这类题目的设计一般都非常巧妙,真的是很难想出来,但只要找到规律或推出公式,就不是很难了。我很多都是在参考别人思路的情况下做的,能自己想出来真的很不容易。
*个人感觉都挺不错的
pku3372 Candy Distribution
http://162.105.81.212/JudgeOnline/problem?id=3372
    pku3244 Difference between Triplets
http://162.105.81.212/JudgeOnline/problem?id=3244
    pku1809 Regetni
http://162.105.81.212/JudgeOnline/problem?id=1809
    pku1831 不定方程组
http://162.105.81.212/JudgeOnline/problem?id=1831
    pku1737 Connected Graph
http://162.105.81.212/JudgeOnline/problem?id=1737
    pku2480 Longge's problem
http://162.105.81.212/JudgeOnline/problem?id=2480
    pku1792 Hexagonal Routes
http://acm.pku.edu.cn/JudgeOnline/problem?id=1792

    11.排列组合,区间计数,计数序列
这些题目可能需要一些组合数学知识,基本上高中的知识就够了。区间计数问题一般不难,但写的时候需要仔细一些,各种情况要考虑到位。至于像卡特兰数,差分序列,斯特灵数···都还挺有意思,可以去看看《组合数学》。
*简单题
pku1850 Code
http://162.105.81.212/JudgeOnline/problem?id=1850
    pku1150 The Last Non-zero Digit
http://162.105.81.212/JudgeOnline/problem?id=1150
    pku1715 Hexadecimal Numbers
http://162.105.81.212/JudgeOnline/problem?id=1715
    pku2282 The Counting Problem
http://162.105.81.212/JudgeOnline/problem?id=2282
    pku3286 How many 0's?
http://162.105.81.212/JudgeOnline/problem?id=3286
    *推荐
pku3252 Round Numbers
http://162.105.81.212/JudgeOnline/problem?id=3252
    *计数序列
pku1430 Binary Stirling Numbers
http://162.105.81.212/JudgeOnline/problem?id=1430
    pku2515 Birthday Cake
http://acm.pku.edu.cn/JudgeOnline/problem?id=2515
    pku1707 Sum of powers
http://acm.pku.edu.cn/JudgeOnline/problem?id=1707

    12.二分法
二分的思想还是很重要的,这里就简单推荐几个纯粹的二分题。
*简单
pku3273 Monthly Expense
http://162.105.81.212/JudgeOnline/problem?id=3273
    pku3258 River Hopscotch
http://162.105.81.212/JudgeOnline/problem?id=3258
    pku1905 Expanding Rods
http://162.105.81.212/JudgeOnline/problem?id=1905
    pku3122 Pie
http://162.105.81.212/JudgeOnline/problem?id=3122
    *推荐
pku1845 Sumdiv
http://acm.pku.edu.cn/JudgeOnline/problem?id=1845

    13.稳定婚姻问题
    无意中接触到这个算法,还蛮有意思的,《组合数学》中有详细的介绍。
pku3487 The Stable Marriage Problem
http://acm.pku.edu.cn/JudgeOnline/problem?id=3487
    zoj1576 Marriage is Stable
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1576

    14.数位类统计问题
    在航点月赛中第一次接触到这类问题,scau大牛little龙推荐我看了一篇论文,09年刘聪的《浅谈数位类统计问题》,这篇论文相当精彩,也相当详细,每道题都有详细的分析和作者的参考代码。所以我也没什么可说的了,这些题的代码我博客里也就不贴了,大家直接去看论文吧。
简单:
ural1057 Amount of degrees
http://acm.timus.ru/problem.aspx?space=1&num=1057
    spoj1182 Sorted bit squence
https://www.spoj.pl/problems/SORTBIT/
    hdu3271 SNIBB
http://acm.hdu.edu.cn/showproblem.php?pid=3271
    较难:
spoj2319 Sequence
https://www.spoj.pl/problems/BIGSEQ/
    sgu390 Tickets
http://acm.sgu.ru/problem.php?contest=0&problem=390

      以上分类的题目在我的博客里都可以找到详细的解题报告和参考代码,由于比较麻烦就没加链接,需要的可以用我的站内搜索找到。

     本小结会不断更新,转载请注明出处。

     严重声明:本文只适合ACM初学者,路过的大牛如有相同类型的比较好的题目可以推荐一些啊。

转自:http://hi.baidu.com/%B1%BF%D0%A1%BA%A2_shw/blog/item/5305e12c7289973e359bf768.html

posted @ 2010-08-29 01:11 abilitytao 阅读(605) | 评论 (0)编辑 收藏

生产实习实验-学习BIOS中断的使用

     摘要:       发现对汇编还是非常的生疏,可能平时程序写少了吧,尤其是对那些寄存器可以间接寻址记的不牢,BIOS调用什么基本是现学现卖。原来这个BIOS调用比DOS调用还要底层,连输出字符串的功能都没有,输入字符串要要用键盘中断,显示汉字要用字模,所谓字模就是一个点阵,用整数表示,用位运算去判断是否在此处输出点,很傻×的方法。为了能...  阅读全文

posted @ 2010-08-28 00:23 abilitytao 阅读(381) | 评论 (0)编辑 收藏

使用中国剩余定理中处理某些方程模数不互质的方法

##Update 2010-4-16
这里稍微证明一下:
给定方程
x = c1 (mod b1) ……………………(1)
x = c2(mod b2) ………………………(2)
(b1,b2)可以不为1
于是通过取mod 定义,我们得到

x = k1 * b1 + c1………………(3)
(3) 带入(2)
k1 * b1 + c1 = c2 (mod b2)…………(4)
化简
k1 * b1 = c2 - c1 (mod b2)…………(5)
于是可以解得到
令G = gcd(b1,b2),C = c2 - c1 (mod b2)
那么由(5)得到
k1 * b1 = W * b2 + C
---->>>>>
k1 * b1 / G = W * b2 / G + C / G
令C'  = C/G
k1 * b1 / G = W * b2 / G + C '
k1 * b1 / G = C' (mod b2 / G)
--->
k1 = K (mod b2/G)………………(6)

那么有
k1 = k' * b2/G + K………………(7)
(7)带入(3)
x = k' * b2 * b1/G + K * b1 + c1………………(8)

x = K*b1 + c1 (mod b1 * b2/G)

通过合并方程的方法成功AC下面此题

题目地址
#include<iostream>
#include
<cmath>
using namespace std;
//x = c1 ( mod b1)
//x = c2 ( mod b2)
//若可以可并,则返回合并结果,否则返回-1可以处理gcd(b1,b2)!=1的情况
int gcd(int a,int b){return b?gcd(b,a%b):a;}
int ext_gcd(int a,int b,int& x,int& y){
    
int t,ret;
    
if (!b){
        x
=1,y=0;
        
return a;
    }

    ret
=ext_gcd(b,a%b,x,y);
    t
=x,x=y,y=t-a/b*y;
    
return ret;
}

//求a对n的乘法逆元,若不存在返回-1
int Invmod(int a,int n){
    
int x,y;
    
if (ext_gcd(a,n,x,y)!=1)return -1;
    
return (x%n+n)%n;
}

int mergef(int b1,int c1,int b2,int c2,int &b,int &c)
{
    
int tb1=b1,tb2=b2;
    c
=((c2-c1)%b2+b2)%b2;
    
int G=gcd(b1,b2);
    
if(c%G)return 0;
    c
/=G;
    b1
/=G;
    b2
/=G;
    c
*=Invmod(b1,b2);
    c
%=b2;
    c
*=tb1;
    c
+=c1;
    b
=tb1*tb2/G;
    c
%=b;
    
return 1;
}

int main()
{
    
int b1,b2,c1,c2,b,c;
    
while(cin>>b1>>c1>>b2>>c2)
    
{
        
if(mergef(b1,c1,b2,c2,b,c))
            cout
<<"X = "<<c<<' '<<"(mod "<<b<<')'<<endl;
    }

    
return 0;
}

扩充了算法导论中中国剩余定理部分的内容,使得它可以处理更一般的情况了,这个模板具有通用性。
转自:http://hi.baidu.com/aekdycoin/blog/item/71d7a842b93f611b73f05da4.html
顺便提一下,除了整理模板之外,要开始网络流部分的强化训练了,强化构图能力。

posted @ 2010-08-26 23:32 abilitytao 阅读(713) | 评论 (0)编辑 收藏

ZOJ 3378 Attack the NEET Princess 求无向图任意两点之间的割边

     摘要:    所谓0->n-1路径上一定要经过的割边,就是0->n-1任意一条路径上的割边,因为割边是必经之路。其实这题跟ZOJ 2588是同一个题,稍微变化就可以得到答案了,不过这题我当时的模板貌似写挫了,对边进行判重的时候进行了暴力,其实可以用set存一下,那么查找的复杂度可以降到log(n). 具体求割边的方法可以看这个:http://www.cp...  阅读全文

posted @ 2010-08-24 23:41 abilitytao 阅读(1466) | 评论 (1)编辑 收藏

数学建模的一个小程序

//数学建模
//2010年8月21日21:55:29

#include<iostream>
#include
<algorithm>
#include
<vector>
#include
<sstream>
#include
<string>
using namespace std;
int const maxn=10000;
char in[100000];

vector
<string>mm[maxn];
int cnt=0;


bool isdigt(char a)
{
    
if(a>='0'&&a<='9')
        
return true;
    
else
        
return false;
}
 

void predo()
{
    
int len=strlen(in);
    
for(int i=0;i<len;i++)
    
{
        
if(!isdigt(in[i]))
            
in[i]=' ';
    }

}


string ans;
void dfs(int k,string str)
{
    
if(k==cnt)
    
{
        cout
<<str<<endl;
        
return;
    }

    
int n=mm[k].size();
    
for(int i=0;i<n;i++)
    
{
        
if(k!=0)
        
//cout<<"-"<<mm[k][i];
        {
            str
+="-";
            str
+=mm[k][i];
        }

        
else
        
//cout<<mm[k][i];
            str+=mm[k][i];
        dfs(k
+1,str);

        
if(k!=0)
        
//cout<<"-"<<mm[k][i];
        {
            str
=str.substr(0,str.length()-mm[k][i].length()-1);
        }

        
else
        
//cout<<mm[k][i];
        str=str.substr(0,str.length()-mm[k][i].length());

    }

}







int main()
{
    freopen(
"IN.txt","r",stdin);
    freopen(
"OUT.txt","w",stdout);
    cnt
=0;
    ans
="";
    
while(cin.getline(in,100000))
    
{
        predo();
        
        
//debug
        
//printf("%s\n",in);
        
//system("pause");
        
// 
        istringstream t(in);
        
string tem;
        
while(t>>tem)
        
{
            mm[cnt].push_back(tem);
        }

        cnt
++;

    }

    
//debug
    /*
    printf("cnt = %d\n",cnt);
    for(int i=0;i<cnt;i++)
    {
        for(int j=0;j<mm[i].size();j++)
        {
            cout<<mm[i][j]<<' ';
        }
        cout<<endl;
    }
    system("pause");
    
*/


    
    dfs(
0,ans);
    
return 0;
}


第一组
0567, 0042, 0025
1487
0303, 0302
0566
0436, 0438, 0437, 0435
0392, 0394, 0393, 0391
0386, 0388, 0387, 0385
3068, 0617, 0619, 0618, 0616
1279
2057, 0721, 0722, 0720
0070, 2361, 3721
0609, 0608
2633, 0399, 0401, 0400
3321, 2535, 2464
3329, 2534
3506, 0167, 0168
0237, 0239, 0238, 0236, 0540
0668
0180, 0181
2079, 2933, 1919, 1921, 1920
0465, 0467, 0466, 0464
3457

第二组
0537, 3580
0526, 0528, 0527, 0525
3045, 0605, 0607
0609, 0608
0087, 0088, 0086
0855, 0856, 0854, 0857
0631, 0632, 0630
3874, 1426, 1427
0211, 0539, 0541, 0540
0978, 0497, 0498
0668
1894, 1896, 1895
1104, 0576, 0578, 0577
3010, 0583, 0582
3676, 0427, 0061, 0060
1961, 2817, 0455, 0456
3262, 0622
1956, 0289, 0291

posted @ 2010-08-21 21:56 abilitytao 阅读(366) | 评论 (0)编辑 收藏

畅意卷舒高唐云——听《蜀绣》散记

      如果说《青花瓷》是江南古巷中的一位美人,那《蜀绣》便是巫山奇峡间的一卷流云。

  
   一、词
   虽然不太关注郭敬明,不可否认的是,这首词作得是不错的。尤有几句点睛之笔,让我喜爱不已。
  
   最喜爱的一句首推“羽毛扇遥指千军阵 锦缎裁几寸”。这一句可说已道尽整首《蜀绣》的精髓所在。和人聊天时曾说,如果这首歌只留一句词,那留这句便可。羽毛扇”三字道出蜀地,“锦缎”则是绣布,以“遥指千军阵”呼应“裁几寸”,似乎看到绣娘以柔荑素腕绣出万马奔腾,又似乎暗喻蜀绣丝线细密,用针如用兵。
   而“绕指柔破锦千万针 杜鹃啼血声 芙蓉花蜀国尽缤纷 转眼尘归尘”两句也甚得我心。
   “绕指柔破锦千万针 杜鹃啼血声” 刺绣原是无声的,但这句写来,隐隐有“听雪落”的感觉。一针针破锦似有声,针针都是漏夜无眠子规啼血声。整首词说的是绣娘等征人的故事,而这句既有刺绣之劳,亦有等人之苦,可谓一语双关。
   “芙蓉花蜀国尽缤纷 转眼尘归尘” 有种道尽人间是沧桑的味道,配合李宇春柔和的嗓音唱出,尤其有一种淡淡愁绪,但又不是绝望,只是举首凝望,浅吟轻唱。让我想到以前和人戏作的一副对联:“沧桑世间应无恙 聚散浮云不问情”。
  

   絮叨得有些支离破碎。下来不得不提的是整首词的韵脚。
   整首词主要以“ㄣ(en)”“ㄥ(eng)”为韵脚(纷、针、村、分、春等韵脚是en,灯、疼、声、等、成等韵脚是eng),个人感觉这个韵脚特别适合李宇春这种中音且清糯的嗓音。咬在齿间,在口中鼻间绕个圈,再轻轻吐出,别有一种挠人心底的韵味。这种发音,唯有此等中音才能唱出最别致的滋味,若是高音,则高亢有余,以这种韵脚收尾,怕是发散了出去收不回来了;或是声音再厚重点,怕是鼻音有余,余韵不足。唯有李宇春这等清糯淡雅的中音,才能把这种韵脚诠释得恰到好处,有点小性感的滋味十足。
  
  
   二、曲
   这支曲很有高唐流云感,听在耳间,似见云卷云舒流于巫山,又似霓裳羽衣翻转旋舞,仿佛一副华美绣卷缓缓舒展于眼前。
   作为一支中国风的曲,民乐元素是不可或缺的。
   我耳拙,听不出太多,只在乐间听出了扬琴、二胡和笛子声,也不知听得对不对。(扬琴是在朋友的帮助下确认的,细辨了一番是琵琶还是扬琴 囧)
   在开始时,似不经意地点缀一些清脆的扬琴声,清越而灵动;随着曲子展开,二胡这种很抒情乐器插入,曲中多出现在绣娘思征人处,柔肠千转;到“君可见刺绣又一针 有人为你疼”始,笛声也开始出现,华卷渐渐展开,流云变幻万千。
  
   用李宇春淡雅干净的嗓音来诠释这支有些华丽的曲子,有意料不到的好效果,一种繁花开尽显霜华的舒畅感。历尽一季繁华后的霜枝,别有一番肆意舒展的感动。她淡吟唱的华曲,简繁结合得极致完美。中国画讲究的是写意,中华一脉相随的文化讲究的也是写意,随意泼墨点缀的梅枝可以绽出最生动的花瓣,轻松流畅的干净嗓音可以歌出最生动的画卷。
  
  
   三、唱
   整支曲唱下来,如水银泻地。
   那个小韵脚形成的小性感不再赘述,中国画般的写意流畅也不重复了。特别想说的是她对一些小细节的处理。
   “君可见刺绣又一针 有人为你疼 君可见牡丹开一生 有人为你等
   ……
   君可见刺绣又一针 有人为你疼 君可见夏雨秋风有人 为你等”
   此二句,若是一般人处理,怕会有一种“啊啊啊,俺等嫩那么久,嫩咋滴还不回来”的感觉。但李宇春处理下来,却是一种冷眼观世间、心痛却无奈的感觉,似手扶锦缎,观古人之悲,娓娓向今人道来。用一个朋友的话说就是:她的歌声里,有一种“悲天悯人”。
   王国维说诗词有有我之境,有无我之境。这首词无疑是“有我”的,但这两句李宇春隐隐唱出一丝“无我”的意味——皆非我所愿,世事本如是。
  
   “浓情蜜意此话当真”一句,在词来说,于我而言是整支词中较弱的部分,但却被她唱成了最有韵味的一句。“浓情蜜意”嚼在口中,听来淡淡的,“此话”后却是一顿,之后慢慢吟出比别句多几份沉凝和不确定的“当真”,突然让人心痛起来,让人突然看到绣娘的悲哀——山盟尚在,良人何在?细密的悲伤悄悄漾起,替古人悲伤起来。
  
   起首的“芙蓉城三月雨纷纷 四月绣花针 羽毛扇遥指千军阵 锦缎裁几寸”及曲中的“绕指柔破锦千万针 杜鹃啼血声 芙蓉花蜀国尽缤纷 转眼尘归尘”两句,曲几至无声,所以几乎可以说是清唱。李宇春的声音本就很适合清唱,她的歌声里有一种磁糯的黏性,有曲声时易被盖住,清唱时——尤其是抒情慢歌,这种黏性便破阵而出,可以把人深深地吸进去。
  
   “江河向海奔,万物为谁春”同样是一种超脱大度的感觉,似乎小心翼翼地吐出的十个字,有一种为伤心人吟怀的体贴。
  
   李宇春曾说过,“中国风”久已有之,其实《中华民谣》之类也是中国风的——那种风格,类似民谣戏曲。
   查百科,对“中国风”有严格的定义。但也许我听歌不多,一直觉得听到的“中国风”不是江南般婉约,就是战场上缠绵。
   这一支,却是中国画般,舒展开来,如云蔚山间,没有刻意的缠绵和故作的沉吟,不是落寞的冷月或壮志的战士,她只是淡淡地、缓缓地,为你展开图画—— 一副历经沧桑的绣品,绣的也许是盛唐牡丹,也许是敦煌飞天,也许是明月小桥,也或许是万马奔腾,各种图画变幻着扑面而来,聚成“蜀绣”两字。

附《蜀绣》歌词
作词:郭敬明

                                                                   芙蓉城/三月雨纷纷/四月绣花针

                                                                   羽毛扇遥指千军阵/锦缎裁几寸

                                                                   看铁马踏冰河/丝线缝韶华/红尘千帐灯

                                                                   山水一程/风雪再一程

                                                                   红烛枕/五月花叶深/六月杏花村

                                                                   红酥手/青丝万千根/姻缘多一分

                                                                   等残阳照孤影/牡丹染铜樽/满城牧笛声

                                                                   伊人倚门/望君踏归程

                                                                   君可见/刺绣每一针/有人为你疼

                                                                   君可见/牡丹开一生/有人为你等

                                                                   江河入海奔/万物为谁春

                                                                   明月照不尽离别人

                                                                   君可见/刺绣又一针/有人为你疼

                                                                   君可见/夏雨秋风/有人为你等

                                                                   翠竹泣墨痕/锦书画不成

                                                                   情针意线/绣不尽鸳鸯枕

                                                                   此生笑傲/风月瘦如刀/催人老

                                                                   来世与君暮暮又朝朝/多逍遥

                                                                                                             ——摘自豆瓣

posted @ 2010-08-19 00:59 abilitytao 阅读(326) | 评论 (3)编辑 收藏

2010 多校联合训练时间表

7月13号 FZU(周二,福大OJ)  
7月15号 BUPT(周四)  
7月20号 WHU(周二)  
7月22号 UESTC(周四)  
7月27号 BJTU(周二)  
7月29号 NUDT(周四)  
8月3号  HIT(周二,哈工大OJ)  
8月5号  ECNU(周四,HDOJ)  
8月7号  HDU(周六,联合训练 暨 HDOJ Monthly Contest,HDOJ)  
8月10号 HNU(周二)  
8月12号 TJU (周四)  
8月17号 BUPT(周二)  
8月19号 WHU(周四)  
8月24号 UESTC(周二)  
8月26号 BJTU(周四)  
8月31号 NUDT(周二)  
9月2号  BIT(周四,HDOJ)  
9月7号  ZSTU(周二)  
9月9号  HRBEU(周四)

posted @ 2010-08-12 23:58 abilitytao 阅读(339) | 评论 (0)编辑 收藏

同余运算及其基本性质 (matrix67)

    100除以7的余数是2,意思就是说把100个东西七个七个分成一组的话最后还剩2个。余数有一个严格的定义:假如被除数是a,除数是b(假设它们均为正整数),那么我们总能够找到一个小于b的自然数r和一个整数m,使得a=bm+r。这个r就是a除以b的余数,m被称作商。我们经常用mod来表示取余,a除以b余r就写成a mod b = r。
    如果两个数a和b之差能被m整除,那么我们就说a和b对模数m同余(关于m同余)。比如,100-60除以8正好除尽,我们就说100和60对于模数8同余。它的另一层含义就是说,100和60除以8的余数相同。a和b对m同余,我们记作a≡b(mod m)。比如,刚才的例子可以写成100≡60(mod 8)。你会发现这种记号到处都在用,比如和数论相关的书中就经常把a mod 3 = 1写作a≡1(mod 3)。
    之所以把同余当作一种运算,是因为同余满足运算的诸多性质。比如,同余满足等价关系。具体地说,它满足自反性(一个数永远和自己同余)、对称性(a和b同余,b和a也就同余)和传递性(a和b同余,b和c同余可以推出a和c同余)。这三个性质都是显然的。
    同余运算里还有稍微复杂一些的性质。比如,同余运算和整数加减法一样满足“等量加等量,其和不变”。小学我们就知道,等式两边可以同时加上一个相等的数。例如,a=b可以推出a+100=b+100。这样的性质在同余运算中也有:对于同一个模数m,如果a和b同余,x和y同余,那么a+x和b+y也同余。在我看来,这个结论几乎是显然的。当然,我们也可以严格证明这个定理。这个定理对减法同样有效。

    性质:如果a≡b(mod m),x≡y(mod m),则a+x≡b+y(mod m)。
    证明:条件告诉我们,可以找到p和q使得a-mp = b-mq,也存在r和s使得x-mr = y-ms。于是a-mp + x-mr = b-mq + y-ms,即a+x-m(p+r) = b+y-m(q+s),这就告诉我们a+x和b+y除以m的余数相同。

    容易想到,两个同余式对应相乘,同余式两边仍然相等:
    如果a≡b(mod m),x≡y(mod m),则ax≡by(mod m)。
    证明:条件告诉我们,a-mp = b-mq,x-mr = y-ms。于是(a-mp)(x-mr) = (b-mq)(y-ms),等式两边分别展开后必然是ax-m(...) = by-m(...)的形式,这就说明ax≡by(mod m)。

    现在你知道为什么有的题要叫你“输出答案mod xxxxx的结果”了吧,那是为了避免高精度运算,因为这里的结论告诉我们在运算过程中边算边mod和算完后再mod的结果一样。假如a是一个很大的数,令b=a mod m,那么(a * 100) mod m和(b * 100) mod m的结果是完全一样的,这相当于是在a≡b (mod m)的两边同时乘以100。这些结论其实都很显然,因为同余运算只关心余数(不关心“整的部分”),完全可以每一次运算后都只保留余数。因此,整个运算过程中参与运算的数都不超过m,避免了高精度的出现。

    在证明Fermat小定理时,我们用到了这样一个定理:
    如果ac≡bc(mod m),且c和m互质,则a≡b(mod m) (就是说同余式两边可以同时除以一个和模数互质的数)。
    证明:条件告诉我们,ac-mp = bc-mq,移项可得ac-bc = mp-mq,也就是说(a-b)c = m(p-q)。这表明,(a-b)c里需要含有因子m,但c和m互质,因此只有可能是a-b被m整除,也即a≡b(mod m

http://www.matrix67.com/blog/archives/236
保存一下,以备今后学习:-)

posted @ 2010-08-05 01:48 abilitytao 阅读(413) | 评论 (0)编辑 收藏

MD,继光庭杯之后再次栽在航电。。。

      记得当时做高斯消元那个题的时候,嘉龙的代码死活过不了,后来发现是在航电long long 要用%I64d ,看来我没吸取这个教训啊,今天做昨天第七场的题目的时候,又犯了同样的错误,浪费了一个下午,从Dij+heap到SPFA,能换的最短路算法都用了,就是过不了航电,还以为加了什么数据,原来是judge的问题,BS!

posted @ 2010-08-05 01:23 abilitytao 阅读(308) | 评论 (0)编辑 收藏

POJ 2777

线段树 经典的题目,以前曾经做过一遍,现在为了练手在做一次,刚学了splay树,反倒是加深了对线段树的理解,就是那个延迟标记(也就是懒操作)。虽然线段树已经写过多次,但是这题仍然不能1A,Query函数中有个地方应该是mid=(ST[i].l+ST[i].r)>>1写成了(l+r)>>1,导致wa了几次,今后要注意啊。
#include<iostream>
using namespace std;

int const maxn=100010;
int n,t,q;

struct node
{
    
int l,r;
    
int col;//用位来存储颜色
    int cover;//延迟标记
}
ST[maxn*4];

void Build(int l,int r,int i)
{
    ST[i].l
=l;
    ST[i].r
=r;
    ST[i].col
=0;
    ST[i].cover
=0;
    
if(l==r)
        
return;
    
int mid=(l+r)>>1;
    Build(l,mid,i
*2);
    Build(mid
+1,r,i*2+1);
}



void push_down(int i)
{
    ST[i
*2].col=ST[i].col;
    ST[i
*2+1].col=ST[i].col;
    ST[i].cover
=0;
    ST[i
*2].cover=1;
    ST[i
*2+1].cover=1;
}

void insert(int l,int r,int col,int i)
{
    
if(ST[i].l==l&&ST[i].r==r)
    
{
        ST[i].cover
=1;
        ST[i].col
=(1<<(col-1));
        
return ;
    }

    
if(ST[i].cover)//如果当前区间有效,下沿延迟标记
        push_down(i);
    
    
int mid=(ST[i].l+ST[i].r)>>1;
    
if(r<=mid)
        insert(l,r,col,i
*2);
    
else if(l>mid)
        insert(l,r,col,i
*2+1);
    
else
    
{
        insert(l,mid,col,i
*2);
        insert(mid
+1,r,col,i*2+1);
    }

    ST[i].col
=ST[i*2].col|ST[i*2+1].col;
}


int fun(int num)//检查最后返回的整数中有多少颜色
{
    
int ans=0;
    
int i;
    
for(i=0;i<t;i++)
        
if(num&(1<<i))
            ans
++;
    
return ans;
}


int Que(int l,int r,int i)
{
    
if( (ST[i].l==l&&ST[i].r==r)||ST[i].cover==1)
        
return ST[i].col;
    
int mid=(ST[i].l+ST[i].r)>>1;
    
if(r<=mid)
        
return Que(l,r,i*2);
    
else if(l>mid)
        
return Que(l,r,i*2+1);
    
else
        
return Que(l,mid,i*2)|Que(mid+1,r,i*2+1);
}



int main()
{
    
while(scanf("%d%d%d",&n,&t,&q)!=EOF)
    
{
        Build(
1,n,1);
        ST[
1].cover=1;
        ST[
1].col=1;
        
char op[20];
        
int a,b,c;
        
for(int i=1;i<=q;i++)
        
{
            scanf(
"%s",op);
            
if(op[0]=='C')
            
{
                scanf(
"%d%d%d",&a,&b,&c);
                
if(a>b)
                    swap(a,b);
                insert(a,b,c,
1);
            }

            
else
            
{

                scanf(
"%d%d",&a,&b);
                
if(a>b)
                    swap(a,b);
                printf(
"%d\n",fun(Que(a,b,1)));
            }

        }

    }

    
return 0;
}

posted @ 2010-08-02 21:24 abilitytao 阅读(665) | 评论 (0)编辑 收藏

仅列出标题
共42页: First 6 7 8 9 10 11 12 13 14 Last