??xml version="1.0" encoding="utf-8" standalone="yes"?>久久视频免费,97人人精品,亚洲精品一区二区三区中文字幕http://www.aygfsteel.com/sweetsc/zh-cnTue, 17 Jun 2025 01:31:01 GMTTue, 17 Jun 2025 01:31:01 GMT60~译原理入门以及战大作业心得Q?Q汇~简易入?/title><link>http://www.aygfsteel.com/sweetsc/archive/2012/01/26/368903.html</link><dc:creator>sweetsc</dc:creator><author>sweetsc</author><pubDate>Thu, 26 Jan 2012 14:42:00 GMT</pubDate><guid>http://www.aygfsteel.com/sweetsc/archive/2012/01/26/368903.html</guid><wfw:comment>http://www.aygfsteel.com/sweetsc/comments/368903.html</wfw:comment><comments>http://www.aygfsteel.com/sweetsc/archive/2012/01/26/368903.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/sweetsc/comments/commentRss/368903.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/sweetsc/services/trackbacks/368903.html</trackback:ping><description><![CDATA[<div><div>应刁哥多q前的约E,外加l合~译原理pdq蝲Q整理一下上一文章,写一个简易的汇编教程……</div><div>管谬误Q疏漏若qԌ但是本文的目的不在于培养学霸Q而在于让不会汇编的h单看看就能写Z基本能用的汇~程?#8230;…</div><div></div><div>在程序设计中Q我们知道一基本原理:语言高U,一般来讲容易编写,形式z,可移植性强Q效率低……</div><div>反过来,语言低U,难~写Q代码越Ҏ是又臭又长还看不懂,难ULQ但是效率会很高……</div><div>汇编是比较低的语a了,׃其不太好ULQ汇~版本又多种多样</div><div>因此Q本着zdzȝQ到时候不会就查手册的原则Q本文不会太着重强调语法,语法以intel语法Z……</div><div></div><div>Chapter1Q一些基本知?/div><div>首先QCPU有若q寄存器Q在32位CPU中,形如eaxQebxQecxQedx……64位CPU则ؓraxQrbx……</div><div>虽然寄存器这个名字很NBQ其实它的本质上是intQؓ了向下兼容的需要,一些老的E序Q也有可能能在新型的CPU上运行(详见DOS老游戏,有的能玩Q有的不能玩Q?/div><div>?4位D例:</div><div>64位寄存器raxQ低32位是eaxQeax?6位是axQax?位叫ahQ低8位叫al……</div><div>CPU只能直接对寄存器q行q算……因ؓ电\l构是那样?#8230;…因此Q所有的操作Q都需要经q寄存器</div><div>譬如赋|A = 1Q实际上?AX = 1; A = AX; 譬如 A = A + BQ应该是 AX = A; AX += B; A = AX; q样</div><div>我是比较不求甚解的,99%功能Q运,判断Q指针){,使用eaxQebxQecxQedx都能搞定……于是׃也就不说别的?#8230;…</div><div></div><div>Chapter2Q汇~的基本语法Q?/div><div>汇编语言大概分ؓ四个D,其中比较需要记住的是代码D和数据D?#8230;…</div><div>用类似高U语a的思\来讲Q数据段用于定义一些全局变量Q代码段用于写程?#8230;…</div><div>来看一个简单的 Hello WorldQ环境:yasmQ?4位)</div><div></div><div>global main </div><div>extern printf </div><div></div><div>section .data </div><div><span style="white-space:pre"> </span>ctrlout   db      '%s', 10, 0 </div><div><span style="white-space:pre"> </span>hw    db      'Hello World', 0 </div><div></div><div>; this is a comment</div><div></div><div>section .text</div><div>main:</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rax, 0</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rdi, ctrlout</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rsi, hw</div><div><span style="white-space:pre"> </span>call <span style="white-space:pre"> </span>printf</div><div>        mov rax, 0</div><div>ret</div><div></div><div>其中Q刚开始global main 表示E序入口Q由于这里直接调用了Linux的函数printfQ之后需要gcc~译Q所以叫做mainQ如果只使用中断输出的话Q可以搞成_start</div><div>之后extern意义和C++cMQ表C个函数在别处Q叫~译器以Z有就?#8230;…</div><div></div><div>section .data  表示数据D,后面是一些定义,以及初始?/div><div>注意q里定义的东西类型都像是指针一PctrloutQhw 实际上是地址……</div><div>初始化必L的干净一点,有一ơ调了半天不对,是因ؓ一?4位intQ前4位没有初始化?……</div><div></div><div>之后 section .text 表示代码D,q里调用C语言函数Q网上说Q?4位汇~中Q参C递方式有了修改,大概是有4~5个寄存器专门保存参数Q如果参数过多,再放入栈Qrax存放栈中的参C?#8230;…我们想printf("%s","Hello World")Q就要调用两个参敎ͼ于是Q我们把W一个参敎ͼ字符串ctrlout的指针movqrdiQhw movqrsiQrax赋gؓ0 Q然后,调用……</div><div>Q实现时Q需要手册自行查阅一下本机怎么搞)</div><div>函数的返回值在raxQ于是return 0</div><div></div><div>然后 yasm -f elf64 XXX.asm</div><div>gcc -o XXX XXX.o</div><div>./XXX</div><div>一个崭新的hello world 出现?#8230;…</div><div></div><div></div><div>Chapter3Q汇~的一些简单指令:</div><div></div><div>׃q是速成教程Q选取一部分指o……要记住,CPU只能直接对寄存器q行q算……</div><div>movQ相当于赋| mov eaxQb  相当于eax = bQ?/div><div>注意Qmov 后面的两个东西至要有一个是寄存?#8230;…</div><div>同时Q和高语言一P不能搞什?mov 10Qeax……</div><div></div><div>addQadd eaxQb 相当于eax+=b</div><div>subQ基本同?#8230;…</div><div>mul || imulQ前面是无符L乘,后面是有W号的乘Q默认被乘数在AXQ于是指令Ş如:mul BXQ如果有溢出Q则高位溢出到DXQ记得备份DX的东?#8230;…</div><div>div  ||  idivQ前面是无符h除,后面是有W号整除Q默认被除数是DXQ高16位)和AXQ低16位)Q因此,除法之前记得把DX清零Q否则数会不?#8230;…</div><div>之后商在AXQ余数在DX</div><div>指o形如Qdiv BX</div><div></div><div>push/popQ每个程序都有栈Q或者是在程序中定义堆栈D,或者用默认栈</div><div>push eaxQ表C把eax放进栈里Qpop ebxQ表C取出栈Ӟ攑֜ebx?#8230;…</div><div>push和pop异常重要Q一个重要作用就是保护寄存器Q譬如DX中有内容Q但是现在要做乘法,没准会破坏DXQ见上)Q于是,先PUSH DXQ然后,乘法Q然后POP DXQ又好比你要调用一个函敎ͼ但是寄存器里有有用的信息Q不保证q个函数不会破坏Q于是,把所有寄存器先pushq去Q运行函敎ͼ然后再pop出来Q这是常用技?#8230;…</div><div>另外也可以用来给函数传参敎ͼ传时倒序压入Q用旉序取出,栈,先进后出Q你们懂?#8230;…</div><div></div><div>Chapter4Qif以及循环</div><div>首先我们要记得,被Dijkstra老爷子骂的一文不值的goto……</div><div>jmp语法和C++里的goto基本一?/div><div></div><div>startQ?/div><div>XXX</div><div>jmp start</div><div></div><div>然后Q汇~没有if thenQ但是有条ggoto</div><div>有个语句叫做cmp</div><div>cmp XQY Q老原则,q两个得有一个寄存器……如果和常数比较,常数必须在后面)</div><div>传说中具体实现是减法……</div><div>q个的效果是可能改变若干标识位的?#8230;…譬如Q?标识Q进位标识,溢出标识……{等……</div><div>然后Q有若干指o</div><div>jl XXQl==lessQ?相当?if (x<y) goto XX; 下同</div><div>jg XXQg==greaterQ?/div><div>jle XXQne==less or equalQ?/div><div>jge XXQge==greter or equalQ?/div><div>jnle XXQn==no->nle==gQ?/div><div>jnge XXQn==no->nge==lQ?/div><div></div><div>有了if thenQ各U运,我们p做出?amp;&,||的逻辑</div><div>有了if thenQ我们也能做出@?#8230;…</div><div></div><div>很多的功能就有了……</div><div></div><div>Chapter5Q实?/div><div></div><div>看看</div><div></div><div>int main() {</div><div>    int a,b,c;</div><div>    input(a);</div><div>    input(b);</div><div>    if (a < b) {</div><div>        c = a;</div><div>    } else {</div><div>        c = b;</div><div>    }</div><div>    print(c);</div><div>}</div><div></div><div>用汇~翻译出来啥P</div><div></div><div>global main </div><div>extern printf </div><div>extern scanf </div><div></div><div>section .data </div><div><span style="white-space:pre"> </span>ctrlout   db      '%lld', 10, 0 </div><div><span style="white-space:pre"> </span>ctrlin    db      '%lld', 0 </div><div><span style="white-space:pre"> </span>_a db 0,0,0,0,0,0,0,0</div><div><span style="white-space:pre"> </span>_b db 0,0,0,0,0,0,0,0</div><div><span style="white-space:pre"> </span>_c db 0,0,0,0,0,0,0,0</div><div></div><div></div><div>section .text</div><div>main:</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rax, 0</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rdi, ctrlin</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rsi, _a</div><div><span style="white-space:pre"> </span>call<span style="white-space:pre"> </span>scanf</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rax, 0</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rdi, ctrlin</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rsi, _b</div><div><span style="white-space:pre"> </span>call<span style="white-space:pre"> </span>scanf</div><div><span style="white-space:pre"> </span>MOV rax, [_a]</div><div><span style="white-space:pre"> </span>CMP rax, [_b]</div><div><span style="white-space:pre"> </span>jl @0</div><div><span style="white-space:pre"> </span>jmp @2</div><div>@0:</div><div><span style="white-space:pre"> </span>MOV rax, [_a]</div><div><span style="white-space:pre"> </span>MOV [_c], rax</div><div><span style="white-space:pre"> </span>jmp @1</div><div>@2:</div><div><span style="white-space:pre"> </span>MOV rax, [_b]</div><div><span style="white-space:pre"> </span>MOV [_c], rax</div><div>@1:</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rax, 0</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rdi, ctrlout</div><div><span style="white-space:pre"> </span>mov<span style="white-space:pre"> </span>rsi, [_c]</div><div><span style="white-space:pre"> </span>call<span style="white-space:pre"> </span>printf</div><div><span style="white-space:pre"> </span>mov rax, 0</div><div>ret</div><div></div><div>Chapter6Q其?/div><div>׃现实生活中,我需要写汇编时候实在是,因此也没啥经?#8230;…管借助手册Q可以对付着写一Ҏ~代码,但是那是不科学的……Ҏ来讲Q汇~告诉我们的一些底层的东西更有价|可以在高U语a中有所体现Q譬如一些表辑ּ的写法,可以考虑写的更科学一些,譬如 c = a / b, q = a % bQ记得写?c = a / b; q = a - c * bQ譬如灵zM用switchQ等{?#8230;…</div></div><img src ="http://www.aygfsteel.com/sweetsc/aggbug/368903.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/sweetsc/" target="_blank">sweetsc</a> 2012-01-26 22:42 <a href="http://www.aygfsteel.com/sweetsc/archive/2012/01/26/368903.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>define 学习体会http://www.aygfsteel.com/sweetsc/archive/2011/12/02/365345.htmlsweetscsweetscThu, 01 Dec 2011 17:59:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/12/02/365345.htmlhttp://www.aygfsteel.com/sweetsc/comments/365345.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/12/02/365345.html#Feedback0http://www.aygfsteel.com/sweetsc/comments/commentRss/365345.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/365345.html 于是今天老图借了本书Q学习一?#8230;…
来看一下我最头疼的define……
define的作用:
一是直接定义一个东?#8230;…cM标记
譬如Q?br />
1 #ifndef test
2 #define test
3 /*
4 balabalabala.
5 */
6 #endif
刘JX老师在大一CQ+课上教育我们Q写头文件一定要加上q么个东?#8230;…Z么呢……
再提一下include的事?#8230;… #include<XXXX>Q实际上是直接把XXXX整个文gCOPY了进?#8230;…
如果出现q样的情况:
1 #include <set>
2 #include <map>
我们知道QCpp?map 实际上是?set 做的Qmap的头文g里肯定有一?#include <set>Q那么,相当于setq个文g在这D늨序里面出C两次……
如果没有ifndefq套的话Q相当于set中的代码重复贴了两次Q就_大事了……
代码W一Difndef test 代表Q如果没有define testQ则执行下面的那D,?nbsp;define testQ然后balabalaQ最后endifQ下ơ再看到q段代码的时候,ifndef test Q此时会发现test已经defineq了Q直接endifQ中间balabala的代码不会重复两?#8230;…

二是直接定义一?#8230;…怎么说呢Q类似替换规则的东西……

譬如Q直接定义常量:
1 #define MAXN 10000
q个实际上就是直接在E序~译之前Q将里面的MAXN都替换成10000
预先定义一些常量,好处大家都懂Q避免程序内部太多的“magic number”Q增强可L,也便于修?#8230;…q里相当于直接替换,貌似C的数l,定义的时候不能用int做下标,const int也不行,只能通过q个ҎQ用立即?#8230;…

譬如Q给一些东西改个名字:
  1 #include <stdio.h> 
  2 #define Q scanf 
  3  
  4 int main() { 
  5     int a; 
  6     Q("%d",&a); 
  7     printf("%d\n",a); 
  8     return 0; 
  9 } 

q里有一些玄机:
1Q?g是因为没有{义?所以不能胡?#8230;…
譬如Q?define USEMATH #include <math.h> 是不能达到预期效果的……
2Q如果这一行太长,可以用\表示和下一行连h…… 貌似q个'\'也没转义Q?#define BACKSLASH \ 也是不行?#8230;…

譬如Q可以定义一些简单的函数Q?br />#define max(a,b) ((a) > (b) ? (a) : (b))
某种意义上这比template NB...
q样Qint c Q?max(a,b); p动替换成 int c Q?(a) > (b) ? (a) : (b)); ?br />此处有一个技巧:有的时候,׃需要用大括h实现q个"函数"Q但是,由define直接替换知道Q这个替换出来,相当于{/*balabala*/};q样Q语法是错的……
于是怎么办呢……׃可以?do {/*balabala*/} while(0) q样的Ş式,l开q个问题…… 在上ơOS大作业上׃都见C……
此处q有两个玄机Q一是千万记得要加括?#8230;…Z么呢……
譬如Q?br />#define mul(a,b) a * b
看着挺好Qmul(1,2 + 3)出事了…… 直接替换出来Q是 1 * 2 + 3Q就错了……
正确Ҏ是:#define mul(a,b) ((a) * (b))Q万无一?#8230;…
另一个玄机是避免++,--之类的,譬如
#define sqr(a) ((a) * (a))
sqr(a++)Q如果sqr是真的函数的话,计算出没有问?#8230;…但是define会忠实的l你替换?(a++) * (a++))……怎么加的不重要,l果׃是你想的?#8230;…

最后有两个用法Q一个是#Q?会将你作?#8220;函数”?#8220;参数”传入的东西{化ؓ字符Ԍ一个是...Q作用一看便知:
 1 #include <stdio.h>
 2 #define max(a,b) ((a) > (b) ? (a) : (b))
 3 #define PRINT() printf(__VA_ARGS__)
 4 #define debug(x) do { \
 5     PRINT(#x);  \
 6     PRINT(" = %d\n",(x)); \
 7     } while (0)
 8 
 9 int main() {
10     int a,b;
11     scanf("%d%d",&a,&b);
12     debug(a);
13     debug(b);
14     debug(a + b);
15     debug(max(a,b));
16     return 0;
17 }


sweetsc 2011-12-02 01:59 发表评论
]]>
2011ACM州|络预选赛 F HDU4068 三国杀http://www.aygfsteel.com/sweetsc/archive/2011/10/07/360137.htmlsweetscsweetscFri, 07 Oct 2011 12:15:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/10/07/360137.htmlhttp://www.aygfsteel.com/sweetsc/comments/360137.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/10/07/360137.html#Feedback0http://www.aygfsteel.com/sweetsc/comments/commentRss/360137.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/360137.htmlNQ枚举自q序Q然后NQ枚丑֯方的序QOQNQ验证即?#8230;…
注意字典序最?#8230;…

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <string>
 4 #include <map>
 5 #include <algorithm>
 6 #include <iostream>
 7 
 8 using namespace std;
 9 
10 map<string,int> mp;
11 int n;
12 int res[10];
13 int my[10];
14 char buf[50];
15 char name[10][50];
16 string ans;
17 
18 void check() {
19     int enemy[] = {0,1,2,3,4,5,6,7,8,9};
20     do {
21         int i = 0;
22         int j = 0;
23         while (i < n && j < n) {
24             if ((1 << my[i]) & res[enemy[j]]) i ++else j++;
25         }
26         if (i == n) return;
27     } while (next_permutation(enemy,enemy + n));
28     string tmp;
29     for (int i = 0; i < n; i++) {
30         if (i) tmp += " ";
31         tmp += name[my[i]];
32     }
33     if (ans == "" || ans > tmp) ans = tmp;
34 }
35 
36 int main() {
37     int nn; scanf("%d",&nn);
38     for (int ii = 1; ii <= nn; ii++) {
39         mp.clear();
40         memset(res,0,sizeof(res));
41         scanf("%d",&n);
42         for (int i = 0; i < n; i++) {
43             scanf("%s",name[i]);
44             mp[string(name[i])] = i;
45         }
46         for (int i = 0; i < n; i++) {
47             int m; scanf("%d",&m);
48             for (int j = 0; j < m; j++) {
49                 scanf("%s",buf);
50                 int tmp = mp[string(buf)];
51                 res[i] |= 1 << tmp;
52             }
53         }
54         for (int i = 0; i < n; i++) {
55             my[i] = i;
56         }
57         ans = "";
58         do {
59             check();
60         } while (next_permutation(my,my + n));
61         printf("Case %d: ",ii);
62         if (ans == "") {
63             puts("No");
64         } else {
65             puts("Yes");
66             for (int i = 0; i < ans.length(); i++) putchar(ans[i]);
67             putchar(10);
68         }
69     }
70     return 0;
71 }


sweetsc 2011-10-07 20:15 发表评论
]]>
2011ACM北京|络预选赛 F Machine scheduling (BUPT 216)http://www.aygfsteel.com/sweetsc/archive/2011/09/18/358932.htmlsweetscsweetscSun, 18 Sep 2011 14:56:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/09/18/358932.htmlhttp://www.aygfsteel.com/sweetsc/comments/358932.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/09/18/358932.html#Feedback3http://www.aygfsteel.com/sweetsc/comments/commentRss/358932.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/358932.html 首先Q这个题要分成两个部分解冻I
W一部分Q从n个东襉K面取出r个,每个间距臛_?k Q?~K不行Q?~K Q?1行)
W二部分Q将qr个东西分成至多ml,可以有空l?br /> W二部分貌似好久之前搞OI的时候干q?#8230;…贴过来:
N球放在M个盒子里Q求共有多少U放?br />

但是?个不同的条g QN个球是否相同QM个盒子是否相同,是否允许有盒子空着

球和?/span>

盒和?span>

I盒

情况?span>

有区?span>

有区?span>

有空?span>

mn

有区?span>

有区?span>

无空?span>

MQ?span>sQ?span>n,mQ?span>

有区?span>

无区?span>

有空?span>

S(n,1)+s(n,2)+…+s(n,m),n>=m

S(n,1)+s(n,2)+…+s(n,n),n<=m

有区?span>

无区?span>

无空?span>

S(n,m)

无区?span>

有区?span>

有空?span>

C(n+m-1,n)

无区?span>

有区?span>

无空?span>

C(n-1,m-1)

无区?span>

无区?span>

有空?span>

F(m,n)

无区?span>

无区?span>

无空?span>

F(m,n-m)

然后Q其中的F(m,n)貌似是当时写q的一个DPQS(M,N)是第二类stirling?#8230;…
递推公式Q?br />
1 int S(int n,int m) {
2     if (n == m || m == 1return 1;
3     return m * S(n - 1, m) + S(n - 1, m - 1);
4 }
W一部分Q可以看作这么一个生成函数的相关问题Q由于每个东西之间都隔了>=KQ?的一D距,因此一个可行解可以看作Q长度ؓKQK + 1QK + 2的棍子r Q?1个(我们认ؓ每个子的头是我们取的点Q,拼接成长度ؓLen的一个大D,之后再堵上一个,是一个Len Q1的可行解……
而r - 1Ҏ子,拼成长度为Len 的可行解数目Q就?X^K + X^(K + 1) + X^(K + 2) + .....) ^ (r - 1)Q这个多式Q展开之后QX^Len前面的pL……
不过……׃数据范围Q直接搞是不成的……
于是提取Q变形:X^(K * (r - 1))  * (1 + X + X^2 + X ^3 +....)^(r - 1)
然后再变形:X^(K * (r - 1))  * (1/(1 - x))^(r - 1)……
然后参照Matrix67大神的日志,展开后面那项Q?br />
1/(1-x)^n=1+C(n,1)x^1+C(n+1,2)x^2+C(n+2,3)x^3+...+C(n+k-1,k)x^k+...
我们知道Q要求长度ؓlen的可行数目,也就是要X^Len前面的pLQ然后,׃前面提取出来了一个K * (r - 1)Q也是d面找len - K * (r - 1) 的pL……
也就是说Qopow = len - K * (r - 1)Q答案就是C(r - 1 + pow - 1, pow)……
不过q还没完Q因为咱们要拼成的长度是lenQ而ȝ长度是NQ需要乘上这个长度len的开头位|的可能?#8230;…
另外q需要特D处理:׃在处理的时候,是先用r - 1个拼接成长度为Len的一个大D,再堵上最后一?#8230;…当r == 1需要特?#8230;…
代码Q?br />
 1 #include <cstdio>
 2 #include <cstring>
 3 
 4 typedef long long Long;
 5 const Long MOD = 1000000007;
 6 
 7 Long F[1010][1010];
 8 Long C[2010][2010];
 9 Long S(int n,int m) {
10     if (n == m || m == 1return 1LL;
11     if (F[n][m] > 0return F[n][m];
12     return F[n][m] = (m * S(n - 1, m) % MOD + S(n - 1, m - 1)) % MOD;
13 }
14 void init() {
15     for (int i = 0; i <= 2000; i++) {
16         for (int j = 0; j <= i; j++) {
17             if (j == 0) C[i][j] = 1;
18             else C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % MOD;
19         }
20     }
21 }
22 int n,r,k,m;
23 
24 int main() {
25     memset(F,0xff,sizeof(F));
26     init();
27     while (scanf("%d%d%d%d",&n,&r,&k,&m) > 0) {
28         if (r == 1) {printf("%d\n",n); continue;}
29         Long ans = 0;
30         for (int i = 1; i <= m && i <= r; i++) {
31             ans = (ans + S(r,i)) % MOD;
32         }
33         Long tmp = 0;
34         for (int len = k * (r - 1); len < n; len++) {
35             int left = n - len;
36             int pow = len - k * (r - 1);
37             // r > 1 !!
38             tmp = (tmp + left * C[r - 1 + pow - 1][pow]) % MOD;
39         }
40         ans = ans * tmp % MOD;
41         printf("%lld\n",ans);
42     }
43     return 0;
44 }


sweetsc 2011-09-18 22:56 发表评论
]]>
2011ACM北京|络预选赛G Panda (BUPT 217)http://www.aygfsteel.com/sweetsc/archive/2011/09/18/358921.htmlsweetscsweetscSun, 18 Sep 2011 12:44:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/09/18/358921.htmlhttp://www.aygfsteel.com/sweetsc/comments/358921.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/09/18/358921.html#Feedback3http://www.aygfsteel.com/sweetsc/comments/commentRss/358921.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/358921.htmlq样相当于将长度为N的字W串变成长度为NQ?的序列,然后一pd修改是序列中1?Q??Q查询就是求一D늚?br />BITQ大安懂的……
 1 #include <cstdio>
 2 #include <cstring>
 3 
 4 int n,m;
 5 char str[50010];
 6 int arr[50010];
 7 
 8 inline int lowbit(int x) {return x & -x;}
 9 
10 void update(int x,int delta) {
11     for (int i = x; i <= n; i += lowbit(i)) {
12         arr[i] += delta;
13     }
14 }
15 
16 int sum(int x) {
17     int ret = 0;
18     while (x) {ret += arr[x]; x -= lowbit(x);}
19     return ret;
20 }
21 
22 int sum(int l,int r) {
23     if (l > r) return 0;
24     if (l == 0return sum(r);
25     return sum(r) - sum(l - 1);
26 }
27 
28 int main() {
29     int nn; scanf("%d",&nn);
30     for (int ii = 1; ii <= nn; ii++) {
31         scanf("%d%d",&n,&m);                
32         memset(str,0,sizeof(str));
33         memset(arr,0,sizeof(arr));
34         scanf("%s",str + 1);
35         for (int i = 1; i + 2 <= n; i++) {
36             if (str[i] == 'w' && str[i + 1== 'b' && str[i + 2== 'w') {
37                 update(i,1);
38             }
39         }
40         printf("Case %d:\n",ii);
41         while (m--) {
42             int ctrl; scanf("%d",&ctrl);
43             if (ctrl == 0) {
44                 int l,r; scanf("%d%d",&l,&r); printf("%d\n",sum(l + 1,r - 1));
45             } else {
46                 int pos; char buf[10]; scanf("%d",&pos); scanf("%s",buf); pos ++;
47                 for (int i = pos - 2; i <= pos && i + 2 <= n; i++) {
48                     if (str[i] == 'w' && str[i + 1== 'b' && str[i + 2== 'w') {
49                         update(i,-1);
50                     }
51                 }
52                 str[pos] = buf[0];
53                 for (int i = pos - 2; i <= pos && i + 2 <= n; i++) {
54                     if (str[i] == 'w' && str[i + 1== 'b' && str[i + 2== 'w') {
55                         update(i,1);
56                     }
57                 }
58             }
59         }
60     }
61     return 0;
62 }


sweetsc 2011-09-18 20:44 发表评论
]]>
2011ACM北京|络预选赛D题: FXTZ II (BUPT 235)http://www.aygfsteel.com/sweetsc/archive/2011/09/18/358920.htmlsweetscsweetscSun, 18 Sep 2011 12:40:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/09/18/358920.htmlhttp://www.aygfsteel.com/sweetsc/comments/358920.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/09/18/358920.html#Feedback1http://www.aygfsteel.com/sweetsc/comments/commentRss/358920.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/358920.html于是只能x有办法的办法Q打?#8230;…

 1 #include <cstdio>
 2 #include <algorithm>
 3 
 4 using namespace std;
 5 typedef long long Long;
 6 
 7 int arr[20];
 8 Long ans = 0;
 9 int n;
10 
11 void dfs(int now,int sum) {
12     if (sum < 0return;
13     if (now == n) {ans ++return;}
14     dfs (now + 1, sum + (1 << arr[now] ));
15     dfs (now + 1, sum - (1 << arr[now] ));
16 }
17 
18 int main() {
19     for (n = 1; n <= 10; n++) {
20         for (int i = 0; i < n; i++) {
21             arr[i] = i;
22         }
23         Long cnt = 0;
24         ans = 0;
25         do {
26              dfs(0,0);           
27              cnt ++;
28         } while (next_permutation(arr,arr + n));
29         printf("%lld ",ans);
30         printf("%lld\n",cnt << n);
31     }
32     return 0;
33 }
输出Q?br />1 2
3 8
15 48
105 384
945 3840
10395 46080
135135 645120
2027025 10321920
34459425 185794560
654729075 3715891200
然后大家都懂?#8230;…
 1 import java.util.*;
 2 import java.io.*;
 3 import java.math.BigInteger;
 4 
 5 
 6 class Main {
 7 
 8     BigInteger[] ans1 = new BigInteger [501];
 9     BigInteger[] ans2 = new BigInteger [501];
10     final BigInteger TWO = BigInteger.valueOf(2);
11 
12     void solve() throws Exception {
13         MyReader in = new MyReader();
14         int nn = in.nextInt();
15         ans1[1= BigInteger.ONE;
16         ans2[1= TWO;
17         for (int i = 2; i <= 500; i++) {
18             ans1[i] = ans1[i - 1].multiply(BigInteger.valueOf(i + i - 1));
19             ans2[i] = ans2[i - 1].multiply(BigInteger.valueOf(i)).multiply(TWO);
20             BigInteger gcd = ans1[i].gcd(ans2[i]);
21             ans1[i] = ans1[i].divide(gcd);
22             ans2[i] = ans2[i].divide(gcd);
23         }
24         PrintWriter out = new PrintWriter(System.out);
25         while (nn-- > 0) {
26             int n = in.nextInt();
27             out.print(ans1[n]);
28             out.print("/");
29             out.println(ans2[n]);
30         }
31         out.flush();
32     }
33 
34     public static void main(String args[]) throws Exception {
35         new Main().solve();
36     }
37 
38     void debug(Objectx) {
39         System.out.println(Arrays.deepToString(x));
40     }
41 }
42 
43 class MyReader {
44     BufferedReader br = new BufferedReader (
45             new InputStreamReader (System.in));
46     StringTokenizer in;
47     String next() throws Exception {
48         if (in == null || !in.hasMoreTokens()) {
49             in = new StringTokenizer(br.readLine());
50         }
51         return in.nextToken();
52     }
53     int nextInt() throws Exception {
54         return Integer.parseInt(next());
55     }
56 }


sweetsc 2011-09-18 20:40 发表评论
]]>
1006 Can you answer these queries The 36th ACM/ICPC Asia Regional Shanghai Site —?Online Contesthttp://www.aygfsteel.com/sweetsc/archive/2011/09/10/358427.htmlsweetscsweetscSat, 10 Sep 2011 12:19:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/09/10/358427.htmlhttp://www.aygfsteel.com/sweetsc/comments/358427.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/09/10/358427.html#Feedback0http://www.aygfsteel.com/sweetsc/comments/commentRss/358427.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/358427.html 1Q将区间[L,R]里面的数开方下取整
2Q求区间[L,R]里面元素的和
W一反应是线D|Q但是这里面有个矛盾Q开方不好处理,如果序列表C成ҎQ求和又不好处理……
q运的是Q开Ҏ作收敛的很快Q从long long ?1Q只?ơ,于是每次对区间操作,我们在线D|基础上进行改动:U段树最后将待查询区间会分成LogQNQ个区间Q绝对不能将操作区间分成段……但是现在要这么做Q因为每个点最多被覆盖8ơ之后就??#8230;…于是Ҏ个节点维护一个isone标记Q标记这一D|不是1Q每ơ修攚w递归下去直接修改?的点Qƈ且维护isone标记……q样均摊下来Q每个点最多被??#8230;…

 1 #include <cstdio>
 2 #include <cmath>
 3 #include <cassert>
 4 
 5 typedef long long Long;
 6 Long sum[410000];
 7 Long data[110000];
 8 bool isone[410000];
 9 int n;
10 const int root = 1;
11 
12 void build(int now,int left,int right) {
13     if (left == right) {
14         sum[now] = data[left];
15         isone[now] = sum[now] == right - left + 1;
16     } else {
17         int mid = (left + right) >> 1;
18         build(now + now,left,mid);
19         build(now + now + 1,mid + 1,right);
20         sum[now] = sum[now + now] + sum[now + now + 1];
21         isone[now] = sum[now] == right - left + 1;
22     }
23 }
24 
25 Long mySqrt(Long x) {
26     double tmp = x;
27     x = Long(sqrt(tmp) + 1e-8);
28     return x;
29 }
30 
31 Long getSum(int now,int left,int right,int l,int r) {
32     if (left > r || right < l) return 0;
33     if (l <= left && right <= r) return sum[now];
34     int mid = (left + right) >> 1;
35     return getSum(now + now,left,mid,l,r) 
36         + getSum(now + now + 1,mid + 1, right, l, r);
37 }
38 
39 void change(int now,int left,int right,int l,int r) {
40     if (left > r || right < l) return;
41     if (isone[now]) return;
42     if (left == right) {
43         sum[now] = mySqrt(sum[now]);
44         isone[now] = sum[now] == right - left + 1;
45     } else {
46         int mid = (left + right) >> 1;
47         change(now + now,left,mid,l,r);
48         change(now + now + 1,mid + 1,right,l,r);
49         sum[now] = sum[now + now] + sum[now + now + 1];
50         isone[now] = sum[now] == right - left + 1;
51     }
52 }
53 
54 int main() {
55     int nn = 0;
56     while (scanf("%d",&n) == 1) {
57         for (int i = 0; i < n; i++) {
58             scanf("%lld",data + i);
59             assert(data[i] > 0);
60         }
61         build(root,0,n-1);
62         int m;
63         scanf("%d",&m);
64         printf("Case #%d:\n"++ nn);
65         while (m--) {
66             int ctrl,l,r;
67             scanf("%d%d%d",&ctrl,&l,&r);
68             l --; r --;
69             if (l > r) {int tmp = l; l = r; r = tmp;}
70             if (ctrl == 1) {
71                 printf("%lld\n",getSum(root,0,n-1,l,r));
72             } else {
73                 change(root,0,n-1,l,r);
74             }
75         }
76         printf("\n");
77     }
78     return 0;
79 }


sweetsc 2011-09-10 20:19 发表评论
]]>
1002 Bombing The 36th ACM/ICPC Asia Regional Shanghai Site —?Online Contesthttp://www.aygfsteel.com/sweetsc/archive/2011/09/10/358426.htmlsweetscsweetscSat, 10 Sep 2011 09:46:00 GMThttp://www.aygfsteel.com/sweetsc/archive/2011/09/10/358426.htmlhttp://www.aygfsteel.com/sweetsc/comments/358426.htmlhttp://www.aygfsteel.com/sweetsc/archive/2011/09/10/358426.html#Feedback0http://www.aygfsteel.com/sweetsc/comments/commentRss/358426.htmlhttp://www.aygfsteel.com/sweetsc/services/trackbacks/358426.htmlSTL搞卛_……
 1 #include <cstdio>
 2 #include <set>
 3 #include <map>
 4 
 5 using namespace std;
 6 typedef multiset<int> sint;
 7 typedef map<int, multiset<int> > line;
 8 
 9 line x;
10 line y;
11 
12 int bomb(line &x, line &y, int pos) {
13     int ret = x[pos].size();
14     for (sint::iterator ii = x[pos].begin();
15             ii != x[pos].end();
16             ii++) {
17         y[*ii].erase(pos);
18     }
19     x[pos].clear();
20     return ret;
21 }
22 
23 int main() {
24     for (;;) {
25         int n,m;
26         scanf("%d%d",&n,&m);
27         if (n + m == 0break;
28         x.clear();
29         y.clear();
30         while (n--) {
31             int tx,ty;
32             scanf("%d%d",&tx,&ty);
33             x[tx].insert(ty);
34             y[ty].insert(tx);
35         }
36         while (m--) {
37             int ctrl,pos;
38             scanf("%d%d",&ctrl,&pos);
39             printf("%d\n",ctrl == 0 ? bomb(x,y,pos) : bomb(y,x,pos));
40         }
41         printf("\n");
42     }
43     return 0;
44 }


sweetsc 2011-09-10 17:46 发表评论
]]>
癑ֺ味?/title><link>http://www.aygfsteel.com/sweetsc/archive/2011/05/23/350884.html</link><dc:creator>sweetsc</dc:creator><author>sweetsc</author><pubDate>Mon, 23 May 2011 15:55:00 GMT</pubDate><guid>http://www.aygfsteel.com/sweetsc/archive/2011/05/23/350884.html</guid><wfw:comment>http://www.aygfsteel.com/sweetsc/comments/350884.html</wfw:comment><comments>http://www.aygfsteel.com/sweetsc/archive/2011/05/23/350884.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/sweetsc/comments/commentRss/350884.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/sweetsc/services/trackbacks/350884.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">  1</span> <span style="color: #008000; ">/*</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">  2</span> <span style="color: #008000; ">    Author: Sweetsc 寂寞之余所?br /></span><span style="color: #008080; ">  3</span> <span style="color: #008000; "><br /></span><span style="color: #008080; ">  4</span> <span style="color: #008000; ">    讑֮?br /></span><span style="color: #008080; ">  5</span> <span style="color: #008000; ">        y的累:</span><span style="color: #008000; text-decoration: underline; ">http://baike.baidu.com/view/2213196.htm</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">  6</span> <span style="color: #008000; ">        比利Q?/span><span style="color: #008000; text-decoration: underline; ">http://baike.baidu.com/view/2280157.htm</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">  7</span> <span style="color: #008000; ">        YooooooooooQ?/span><span style="color: #008000; text-decoration: underline; ">http://124.228.254.229/html/ent/20110421/192948.html</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">  8</span> <span style="color: #008000; "></span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">  9</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 10</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 11</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.</span><span style="color: #000000; ">*</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; "> 12</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 13</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> Event {<br /></span><span style="color: #008080; "> 14</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> Random rand </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Random();<br /></span><span style="color: #008080; "> 15</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">final</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> String[] eventlist </span><span style="color: #000000; ">=</span><span style="color: #000000; "> {<br /></span><span style="color: #008080; "> 16</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">散步</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br /></span><span style="color: #008080; "> 17</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">吃饭</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br /></span><span style="color: #008080; "> 18</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">看电?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br /></span><span style="color: #008080; "> 19</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">购物</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br /></span><span style="color: #008080; "> 20</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">旅游</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /></span><span style="color: #008080; "> 21</span> <span style="color: #000000; ">    };<br /></span><span style="color: #008080; "> 22</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> event </span><span style="color: #000000; ">=</span><span style="color: #000000; "> rand.nextInt() </span><span style="color: #000000; ">%</span><span style="color: #000000; "> eventlist.length;<br /></span><span style="color: #008080; "> 23</span> <span style="color: #000000; ">    String getEvent() {<br /></span><span style="color: #008080; "> 24</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> eventlist[event];<br /></span><span style="color: #008080; "> 25</span> <span style="color: #000000; ">    }<br /></span><span style="color: #008080; "> 26</span> <span style="color: #000000; ">}<br /></span><span style="color: #008080; "> 27</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 28</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> Girl {<br /></span><span style="color: #008080; "> 29</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">final</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> String[] character </span><span style="color: #000000; ">=</span><span style="color: #000000; "> {<br /></span><span style="color: #008080; "> 30</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">y的?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br /></span><span style="color: #008080; "> 31</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">天然?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br /></span><span style="color: #008080; "> 32</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">普?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br /></span><span style="color: #008080; "> 33</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">软妹?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br /></span><span style="color: #008080; "> 34</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">伪娘</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br /></span><span style="color: #008080; "> 35</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">宅女</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br /></span><span style="color: #008080; "> 36</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">腐女</span><span style="color: #000000; ">"</span><span style="color: #000000; ">,<br /></span><span style="color: #008080; "> 37</span> <span style="color: #000000; ">        </span><span style="color: #000000; ">"</span><span style="color: #000000; ">癑֐</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /></span><span style="color: #008080; "> 38</span> <span style="color: #000000; ">    };<br /></span><span style="color: #008080; "> 39</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> Random rand </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Random();<br /></span><span style="color: #008080; "> 40</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 41</span> <span style="color: #000000; ">    String name;<br /></span><span style="color: #008080; "> 42</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> type;<br /></span><span style="color: #008080; "> 43</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> friendship;<br /></span><span style="color: #008080; "> 44</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 45</span> <span style="color: #000000; ">    Girl(String name) {<br /></span><span style="color: #008080; "> 46</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.name </span><span style="color: #000000; ">=</span><span style="color: #000000; "> name;<br /></span><span style="color: #008080; "> 47</span> <span style="color: #000000; ">        type </span><span style="color: #000000; ">=</span><span style="color: #000000; "> rand.nextInt() </span><span style="color: #000000; ">%</span><span style="color: #000000; "> character.length;<br /></span><span style="color: #008080; "> 48</span> <span style="color: #000000; ">        friendship </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; "> 49</span> <span style="color: #000000; ">    }<br /></span><span style="color: #008080; "> 50</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 51</span> <span style="color: #000000; ">    String getName() {<br /></span><span style="color: #008080; "> 52</span> <span style="color: #000000; ">        String ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> name;<br /></span><span style="color: #008080; "> 53</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (friendship </span><span style="color: #000000; "><</span><span style="color: #000000; "> </span><span style="color: #000000; ">10</span><span style="color: #000000; ">) {<br /></span><span style="color: #008080; "> 54</span> <span style="color: #000000; ">            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (type </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">) </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">闭嘴Q基佬!</span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; "> 55</span> <span style="color: #000000; ">            </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; "><img src="http://www.aygfsteel.com/Images/dot.gif" alt="" /><img src="http://www.aygfsteel.com/Images/dot.gif" alt="" /></span><span style="color: #000000; ">"</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; "> 56</span> <span style="color: #000000; ">        }<br /></span><span style="color: #008080; "> 57</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> ans;<br /></span><span style="color: #008080; "> 58</span> <span style="color: #000000; ">    }<br /></span><span style="color: #008080; "> 59</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 60</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> meet() {<br /></span><span style="color: #008080; "> 61</span> <span style="color: #000000; ">        friendship </span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; "> 62</span> <span style="color: #000000; ">    }<br /></span><span style="color: #008080; "> 63</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 64</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> date(Event event) {<br /></span><span style="color: #008080; "> 65</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (friendship </span><span style="color: #000000; "><</span><span style="color: #000000; "> </span><span style="color: #000000; ">20</span><span style="color: #000000; ">) {<br /></span><span style="color: #008080; "> 66</span> <span style="color: #000000; ">            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (type </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">) {<br /></span><span style="color: #008080; "> 67</span> <span style="color: #000000; ">                System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">我ؓ什么要和你</span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">+</span><span style="color: #000000; "> event.getEvent() </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">啊?</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; "> 68</span> <span style="color: #000000; ">            } </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> {<br /></span><span style="color: #008080; "> 69</span> <span style="color: #000000; ">                System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">不好意思,我那天有?img src="http://www.aygfsteel.com/Images/dot.gif" alt="" />.</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; "> 70</span> <span style="color: #000000; ">            }<br /></span><span style="color: #008080; "> 71</span> <span style="color: #000000; ">        } </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> {<br /></span><span style="color: #008080; "> 72</span> <span style="color: #000000; ">            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (type </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">) {<br /></span><span style="color: #008080; "> 73</span> <span style="color: #000000; ">                System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">偶尔和你?/span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">+</span><span style="color: #000000; "> event.getEvent() </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">也可以啊</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; "> 74</span> <span style="color: #000000; ">            } </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> {<br /></span><span style="color: #008080; "> 75</span> <span style="color: #000000; ">                System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">好啊</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; "> 76</span> <span style="color: #000000; ">            }<br /></span><span style="color: #008080; "> 77</span> <span style="color: #000000; ">            friendship </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> rand.nextInt() </span><span style="color: #000000; ">%</span><span style="color: #000000; "> </span><span style="color: #000000; ">10</span><span style="color: #000000; "> </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #000000; ">5</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; "> 78</span> <span style="color: #000000; ">        }<br /></span><span style="color: #008080; "> 79</span> <span style="color: #000000; ">    }<br /></span><span style="color: #008080; "> 80</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 81</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> lastJudgeMent() {<br /></span><span style="color: #008080; "> 82</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (friendship </span><span style="color: #000000; "><</span><span style="color: #000000; "> </span><span style="color: #000000; ">80</span><span style="color: #000000; ">) {<br /></span><span style="color: #008080; "> 83</span> <span style="color: #000000; ">            System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Ҏ默了怹Q{w离开</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; "> 84</span> <span style="color: #000000; ">            System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">然后没有然后了……</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; "> 85</span> <span style="color: #000000; ">            System.err.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">pȝ提示Q好感度不Q?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; "> 86</span> <span style="color: #000000; ">            friendship </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0x80000000</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; "> 87</span> <span style="color: #000000; ">            </span><span style="color: #0000FF; ">return</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; "> 88</span> <span style="color: #000000; ">        } </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> {<br /></span><span style="color: #008080; "> 89</span> <span style="color: #000000; ">            </span><span style="color: #0000FF; ">switch</span><span style="color: #000000; "> (type) {<br /></span><span style="color: #008080; "> 90</span> <span style="color: #000000; ">                </span><span style="color: #0000FF; ">case</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; "> : <br /></span><span style="color: #008080; "> 91</span> <span style="color: #000000; ">                    System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">仑家可不是因为喜Ƣ才{应的哦Q?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; "> 92</span> <span style="color: #000000; ">                    </span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; "> 93</span> <span style="color: #000000; ">                </span><span style="color: #0000FF; ">case</span><span style="color: #000000; "> </span><span style="color: #000000; ">4</span><span style="color: #000000; "> : <br /></span><span style="color: #008080; "> 94</span> <span style="color: #000000; ">                    System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Yoooooooooooooooooo!!!!</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; "> 95</span> <span style="color: #000000; ">                    System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">你从此,跟随比利Q走向了q求人生哲学的道?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; "> 96</span> <span style="color: #000000; ">                    System.err.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">pȝ提示Q你求交往的对象是伪娘Q?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; "> 97</span> <span style="color: #000000; ">                    </span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; "> 98</span> <span style="color: #000000; ">                </span><span style="color: #0000FF; ">case</span><span style="color: #000000; "> </span><span style="color: #000000; ">6</span><span style="color: #000000; "> : <br /></span><span style="color: #008080; "> 99</span> <span style="color: #000000; ">                    System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Ҏ怀ƣ喜的答应了</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">100</span> <span style="color: #000000; ">                    System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">q了几天Q她介绍了个男友l你</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">101</span> <span style="color: #000000; ">                    System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Yoooooooooooooooooo!!!!</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">102</span> <span style="color: #000000; ">                    System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">你从此,跟随比利Q走向了q求人生哲学的道?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">103</span> <span style="color: #000000; ">                    System.err.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">pȝ提示Q你求交往的对象是腐女Q?/span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">104</span> <span style="color: #000000; ">                    </span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">105</span> <span style="color: #000000; ">                </span><span style="color: #0000FF; ">case</span><span style="color: #000000; "> </span><span style="color: #000000; ">7</span><span style="color: #000000; "> : <br /></span><span style="color: #008080; ">106</span> <span style="color: #000000; ">                    System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">奚w无表情的_我喜Ƣ的是女生!</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">107</span> <span style="color: #000000; ">                    System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">然后没有然后了……</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">108</span> <span style="color: #000000; ">                    friendship </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0x80000000</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">109</span> <span style="color: #000000; ">                    </span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br /></span><span style="color: #008080; ">110</span> <span style="color: #000000; ">                </span><span style="color: #0000FF; ">default</span><span style="color: #000000; "> : <br /></span><span style="color: #008080; ">111</span> <span style="color: #000000; ">                    System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Ҏ脔R红,沉默了许久,之后ӆ的说道:好吧</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">112</span> <span style="color: #000000; ">                    System.out.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">从此Q你?/span><span style="color: #000000; ">"</span><span style="color: #000000; "> </span><span style="color: #000000; ">+</span><span style="color: #000000; "> character[type] </span><span style="color: #000000; ">+</span><span style="color: #000000; "> name </span><span style="color: #000000; ">+</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">q上了幸的生活</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">113</span> <span style="color: #000000; ">                    System.err.println(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">l于Goodend了,可喜可贺可喜可贺</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br /></span><span style="color: #008080; ">114</span> <span style="color: #000000; ">            }<br /></span><span style="color: #008080; ">115</span> <span style="color: #000000; ">        }<br /></span><span style="color: #008080; ">116</span> <span style="color: #000000; ">    }<br /></span><span style="color: #008080; ">117</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">118</span> <span style="color: #000000; ">}</span></div><img src ="http://www.aygfsteel.com/sweetsc/aggbug/350884.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/sweetsc/" target="_blank">sweetsc</a> 2011-05-23 23:55 <a href="http://www.aygfsteel.com/sweetsc/archive/2011/05/23/350884.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>旁门左道W二章之障碍?/title><link>http://www.aygfsteel.com/sweetsc/archive/2011/04/06/347696.html</link><dc:creator>sweetsc</dc:creator><author>sweetsc</author><pubDate>Wed, 06 Apr 2011 04:36:00 GMT</pubDate><guid>http://www.aygfsteel.com/sweetsc/archive/2011/04/06/347696.html</guid><wfw:comment>http://www.aygfsteel.com/sweetsc/comments/347696.html</wfw:comment><comments>http://www.aygfsteel.com/sweetsc/archive/2011/04/06/347696.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/sweetsc/comments/commentRss/347696.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/sweetsc/services/trackbacks/347696.html</trackback:ping><description><![CDATA[原文Q? JavaU程Q新特征-障碍器,q是该作者的原创作品Q允许{载,转蝲时请务必以超链接形式标明文章 <a target="_blank" style="text-decoration:underline">原始出处</a> 、作者信息和本声明。否则他追I法律责?#8230;…<br /> <br /> Hmm……好怕怕,转个日志都会被追I法律责?#8230;…<br /> <br /> 不过要感谢原文的兰州Q在兰州的文章帮助下Q今天突然发C灉|Q改造了攚w兰州的代码……<br /> 在ACM中的作用Q我觉得可以q样Q?br /> 1Q对于单文g多case的题Q开多线E,每个U程跑一个caseQ之后再调用收尾的Q务输?br /> 2Q对于单case且可以ƈ行的情况Q开若干U程处理之后Q调用收ևC最后处理、输?br /> <br /> 以下是一个简单的求和代码Q实际效果,在我的双核CPU上用时大概减了一?br /> <br /> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008080; "> 1</span> <span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.concurrent.BrokenBarrierException;<br /> </span><span style="color: #008080; "> 2</span> <span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.concurrent.CyclicBarrier;<br /> </span><span style="color: #008080; "> 3</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; "> 4</span> <span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> Test {<br /> </span><span style="color: #008080; "> 5</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">[] ans;<br /> </span><span style="color: #008080; "> 6</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> run() {<br /> </span><span style="color: #008080; "> 7</span> <span style="color: #000000; ">        ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; ">[</span><span style="color: #000000; ">4</span><span style="color: #000000; ">];<br /> </span><span style="color: #008080; "> 8</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> now </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; "> 9</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">; i </span><span style="color: #000000; "><</span><span style="color: #000000; "> </span><span style="color: #000000; ">400000000</span><span style="color: #000000; ">; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /> </span><span style="color: #008080; ">10</span> <span style="color: #000000; ">            now </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (now </span><span style="color: #000000; ">+</span><span style="color: #000000; "> i) </span><span style="color: #000000; ">%</span><span style="color: #000000; "> </span><span style="color: #000000; ">9999997</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">11</span> <span style="color: #000000; ">        }<br /> </span><span style="color: #008080; ">12</span> <span style="color: #000000; ">        System.out.println(now);<br /> </span><span style="color: #008080; ">13</span> <span style="color: #000000; ">        CyclicBarrier cb </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> CyclicBarrier(</span><span style="color: #000000; ">4</span><span style="color: #000000; ">, </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> MainTask());<br /> </span><span style="color: #008080; ">14</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SubTask(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,</span><span style="color: #000000; ">100000000</span><span style="color: #000000; ">,cb).start();<br /> </span><span style="color: #008080; ">15</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SubTask(</span><span style="color: #000000; ">1</span><span style="color: #000000; ">,</span><span style="color: #000000; ">100000000</span><span style="color: #000000; ">,</span><span style="color: #000000; ">200000000</span><span style="color: #000000; ">,cb).start();<br /> </span><span style="color: #008080; ">16</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SubTask(</span><span style="color: #000000; ">2</span><span style="color: #000000; ">,</span><span style="color: #000000; ">200000000</span><span style="color: #000000; ">,</span><span style="color: #000000; ">300000000</span><span style="color: #000000; ">,cb).start();<br /> </span><span style="color: #008080; ">17</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SubTask(</span><span style="color: #000000; ">3</span><span style="color: #000000; ">,</span><span style="color: #000000; ">300000000</span><span style="color: #000000; ">,</span><span style="color: #000000; ">400000000</span><span style="color: #000000; ">,cb).start();<br /> </span><span style="color: #008080; ">18</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">19</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> main(String[] args) {<br /> </span><span style="color: #008080; ">20</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Test().run();<br /> </span><span style="color: #008080; ">21</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">22</span> <span style="color: #000000; ">}<br /> </span><span style="color: #008080; ">23</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">24</span> <span style="color: #0000FF; ">class</span><span style="color: #000000; "> MainTask </span><span style="color: #0000FF; ">implements</span><span style="color: #000000; "> Runnable {<br /> </span><span style="color: #008080; ">25</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> run() {<br /> </span><span style="color: #008080; ">26</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">27</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">; i </span><span style="color: #000000; "><</span><span style="color: #000000; "> </span><span style="color: #000000; ">4</span><span style="color: #000000; ">; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /> </span><span style="color: #008080; ">28</span> <span style="color: #000000; ">            ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (ans </span><span style="color: #000000; ">+</span><span style="color: #000000; "> Test.ans[i]) </span><span style="color: #000000; ">%</span><span style="color: #000000; "> </span><span style="color: #000000; ">9999997</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">29</span> <span style="color: #000000; ">        }<br /> </span><span style="color: #008080; ">30</span> <span style="color: #000000; ">        System.out.println(ans);<br /> </span><span style="color: #008080; ">31</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">32</span> <span style="color: #000000; ">}<br /> </span><span style="color: #008080; ">33</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">34</span> <span style="color: #0000FF; ">class</span><span style="color: #000000; "> SubTask </span><span style="color: #0000FF; ">extends</span><span style="color: #000000; "> Thread {<br /> </span><span style="color: #008080; ">35</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> pos;<br /> </span><span style="color: #008080; ">36</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> left;<br /> </span><span style="color: #008080; ">37</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> right;<br /> </span><span style="color: #008080; ">38</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> CyclicBarrier cb;<br /> </span><span style="color: #008080; ">39</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">final</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> mod </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">9999997</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">40</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">41</span> <span style="color: #000000; ">    SubTask(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> pos,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> left,</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> right,CyclicBarrier cb) {<br /> </span><span style="color: #008080; ">42</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.pos </span><span style="color: #000000; ">=</span><span style="color: #000000; "> pos;<br /> </span><span style="color: #008080; ">43</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.left </span><span style="color: #000000; ">=</span><span style="color: #000000; "> left;<br /> </span><span style="color: #008080; ">44</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.right </span><span style="color: #000000; ">=</span><span style="color: #000000; "> right;<br /> </span><span style="color: #008080; ">45</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.cb </span><span style="color: #000000; ">=</span><span style="color: #000000; "> cb;<br /> </span><span style="color: #008080; ">46</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">47</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">48</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> run() {<br /> </span><span style="color: #008080; ">49</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /> </span><span style="color: #008080; ">50</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> (</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i </span><span style="color: #000000; ">=</span><span style="color: #000000; "> left; i </span><span style="color: #000000; "><</span><span style="color: #000000; "> right; i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">) {<br /> </span><span style="color: #008080; ">51</span> <span style="color: #000000; ">            ans </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (ans </span><span style="color: #000000; ">+</span><span style="color: #000000; "> i) </span><span style="color: #000000; ">%</span><span style="color: #000000; "> mod;<br /> </span><span style="color: #008080; ">52</span> <span style="color: #000000; ">        }<br /> </span><span style="color: #008080; ">53</span> <span style="color: #000000; ">        Test.ans[pos] </span><span style="color: #000000; ">=</span><span style="color: #000000; "> ans;<br /> </span><span style="color: #008080; ">54</span> <span style="color: #000000; "><br /> </span><span style="color: #008080; ">55</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">try</span><span style="color: #000000; "> {<br /> </span><span style="color: #008080; ">56</span> <span style="color: #000000; ">            cb.await();<br /> </span><span style="color: #008080; ">57</span> <span style="color: #000000; ">        } </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> (InterruptedException e) {<br /> </span><span style="color: #008080; ">58</span> <span style="color: #000000; ">            e.printStackTrace();<br /> </span><span style="color: #008080; ">59</span> <span style="color: #000000; ">        } </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> (BrokenBarrierException e) {<br /> </span><span style="color: #008080; ">60</span> <span style="color: #000000; ">            e.printStackTrace();<br /> </span><span style="color: #008080; ">61</span> <span style="color: #000000; ">        }<br /> </span><span style="color: #008080; ">62</span> <span style="color: #000000; ">    }<br /> </span><span style="color: #008080; ">63</span> <span style="color: #000000; ">}</span></div> <img src ="http://www.aygfsteel.com/sweetsc/aggbug/347696.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/sweetsc/" target="_blank">sweetsc</a> 2011-04-06 12:36 <a href="http://www.aygfsteel.com/sweetsc/archive/2011/04/06/347696.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank">˶</a>| <a href="http://" target="_blank">пѷ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">γ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ָ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ̶</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank">üɽ</a>| <a href="http://" target="_blank">ֺ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ٹ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӳ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>