zoukankan      html  css  js  c++  java
  • 集训队日常训练20181117 DIV2

    大佬们一顿操作猛如虎,拼命AC强啊

    4262: 区间异或 分享至QQ空间

    Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
    Total Submit: 139            Accepted:58

    Description

     

    zzd通过艰苦的学习,终于领悟了异或(^)的计算方法.

    可是现在他面前出现了一道难题,zzd陷入了迷茫之中…你能帮帮他么?

    给出一个长为N的序列{A1, A2, A3, ... , An}。求解区间[L,R]的异或和 A(L)^A(L+1)^ ... ^ A(R)。

    Input

     

    题目数据有多组,请读入至文件结束。

    每组第一行给出两个整数N,M(1<=N<=1000000, 1<=M<=100000)。N代表序列的长度,M代表询问数。

    接下来有N行,每行有一个整数A(0<=A<=32767),代表序列的每一项。

    接下来有M行,每行有两个整数L、R(1<=L<=R<=N),代表询问的区间。

    Output

     

    对于每组询问[L,R],请输出[L,R]区间的异或和。

    Sample Input

    5 3
    1 2 3 4 5
    1 1
    1 5
    2 4

    Sample Output

    1
    1
    5

    Hint

    大量数据,请使用scanf、printf输入输出


    看起来好像是个O(q*n)或者O(n*n)的算法,但是不是的啊,异或有个性质,相同两个数异或为0,所以可以借助前缀和去优化

    #include <stdio.h>
    int a[1000005],b[1000005];
    int main()
    {
        int m,n;
        while(~scanf("%d%d",&n,&m))
        {
            for(int i=1; i<=n; i++)
                scanf("%d",&a[i]),b[i]=a[i]^b[i-1];
            while(m--)
            {
                int l,r;
                scanf("%d%d",&l,&r);
                int f=b[r];//1到r的异或值
                for(int i=1; i<l; i++)f^=a[i];//消除1到l-1的影响
                printf("%d
    ",f);
            }
        }
        return 0;
    }

    所以我sb了,后面的不直接是存着的。直接b[r]^b[l-1]就完事

    那么如果不是^,是gcd或者|或者&呢,可以用二分+ST表或者利用这个递减很快的性质去解决

    //https://vjudge.net/problem/Gym-101532A
    #include<bits/stdc++.h>
    using namespace std;
    int fun(int x,int y)
    {
        return x&y;
    }
    const int N=1e5+5;
    int n,a[N],l[N],v[N];
    int main()
    {
        ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
        int T;
        cin>>T;
        while(T--)
        {
            cin>>n;
            for(int i=1; i<=n; i++)cin>>a[i];
            long long ans=0;
            for(int i=1,j; i<=n; i++)
                for(v[i]=a[i],j=l[i]=i; j; j=l[j]-1)
                {
                    v[j]=fun(v[j],a[i]);
                    while(l[j]>1&&fun(a[i],v[l[j]-1])==fun(a[i],v[j]))l[j]=l[l[j]-1];
                    ans+=v[j]*1LL*(j-l[j]+1);
                }
            cout<<ans<<"
    ";
        }
        return 0;
    }
    Claris的niubi模板

    1535: 找规律填数字 分享至QQ空间

    Time Limit(Common/Java):1000MS/10000MS     Memory Limit:65536KByte
    Total Submit: 1314            Accepted:583

    Description

     

    小瑜还在读幼儿园呢,现在的小孩子正够可怜的......
    这不,老师给孩子们布置了一道连很多大人都不会的数学题目。且看: 
    给你一组有规律序列的前面5个整数,请你给出它后面跟着的5个整数,如:1,2,3,4,5,___,___,___,__,___。这是个等差数列, 后面应该是6,7,8,9,10,这倒简单。但现在老师告诉孩子们这串序列有可能是等差数列,等比数列或者是斐波那契数列。亲爱的,你能帮小瑜完成这个题目吗?

    Input

    输入有多组数据,每组数据占一行,有5个数字组成,每个数字之间隔一个空格,当5个数字都为0时输入结束。

    Output

    每组测试数据对应一个输出为这串数列的后面5个数字,每个数字之间隔一个空格。当输入的5个数字都为0时不用输出结果。

    Sample Input

    1 2 3 4 5
    1 2 4 8 16
    1 2 3 5 8
    0 0 0 0 0

    Sample Output

    6 7 8 9 10
    32 64 128 256 512
    13 21 34 55 89

    Hint

    用int可以满足精度
    读懂题意分情况写一下吧,我代码找不到了
    solution from addition  
    #include <iostream>
    #include <cstdio>
    using namespace std;
    
    int main()
    {
        int a[15];
        while(scanf("%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4]),a[0]||a[1]||a[2]||a[3]||a[4])
        {
            int flag=0,k;
            if(a[4]-a[3]==a[3]-a[2])
            {
                flag=1;
                k=a[4]-a[3];
                for(int i=5; i<10; i++)
                {
                    a[i]=a[i-1]+k;
                }
            }
            else if(a[4]*a[2]==a[3]*a[3])
            {
                flag=2;
                k=a[4]/a[3];
                for(int i=5; i<10; i++)
                {
                    a[i]=a[i-1]*k;
                }
            }
            else
            {
                flag=3;
                for(int i=5; i<10; i++)
                {
                    a[i]=a[i-1]+a[i-2];
                }
            }
            for(int i=5; i<10; i++)
            {
                if(i!=5)printf(" ");
                printf("%d",a[i]);
            }
            printf("
    ");
        }
        return 0;
    }

    1438: 螺旋形 分享至QQ空间

    Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
    Total Submit: 576            Accepted:183

    Description

    输入n,(0 < n <= 20),建立n*n二维数组,按照下图规则把1~n*n个数放在n*n二维数组中,然后按行优先顺序输出。

    1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7

    Input

    输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<=20),n的含义如题目中描述。n=0表示输入数据的结束,不做处理。

    Output

    对于每个测试实例,输出该二维数组,该二维数组按行输出,行中数据之间有一个空格,每个数据占3个字符位置,左对齐,注意每行的最后一个元素后面没有空格,每个测试例子后面有空行。

    Sample Input

    1
    2
    3
    0

    Sample Output

     

    1

    1 2
    4 3

    1 2 3
    8 9 4
    7 6 5

    Source

    TOJ

    真实模拟题,不过我这个写法好像有点过于强了,应该是螺旋矩阵的通解

    #include <stdio.h>
    int get(int x,int y,int n)
    {
        if(x<=y)
        {
            int k=(x<n-1-y)?x:n-1-y;
            return 4*k*(n-k)+1+(x+y-k*2);
        }
        int k=(y<n-1-x)?y:n-1-x;
        k=k+1;
        return 4*k*(n-k)+1-(x+y-(k-1)*2);
    }
    int main()
    {
        int n,i,j;
        while(scanf("%d",&n)!=EOF,n)
        {
            int a[21][21];
            for(i=0; i<n; i++)
                for(j=0; j<n; j++)
                    a[i][j]=get(i,j,n);
            for(i=0; i<n; i++)
            {
                printf("%-3d",a[i][0]);
                for(j=1; j<n; j++)
                    printf(" %-3d",a[i][j]);
                printf("
    ");
            }
            printf("
    ");
        }
        return 0;
    }

    模拟的代码,不够我个人喜欢while,稍微好控制些

    solution from Nayo 

    #include<iostream>
    #include<stdio.h>
    using namespace std;
    int main()
    {
        int t,a[21][21]= {0};
        while(cin>>t,t)
        {
            int num=1;
            for(int n=0; n<=t/2; n++)
            {
                for(int j=n; j<=t-n-1; j++)
                {
                    a[n][j]=num++;
                }
                for(int i=n+1; i<t-n-1; i++)
                {
                    a[i][t-n-1]=num++;
                }
                for(int j=t-n-1; j>n; j--)
                {
                    a[t-n-1][j]=num++;
                }
                for(int i=t-n-1; i>n; i--)
                {
                    a[i][n]=num++;
                }
            }
            for(int o=0; o<t; o++)
            {
                for(int p=0; p<t; p++)
                {
                    if(p!=t-1)
                        printf("%-3d ",a[o][p]);
                    else
                        printf("%-3d",a[o][p]);
                }
                cout<<endl;
            }
            cout<<endl;
        }
    }

    4604: 搞笑版费马大定理 分享至QQ空间

    Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
    Total Submit: 238            Accepted:135

    Description

     

    费马大定理:当n>2时,不定方程an+bn=cn没有正整数解。比如a3+b3=c3没有正整数解。为了活跃气氛,我们不妨来个搞笑版:把方程改成a3+b3=c3,这样就有解了,比如a=4, b=9, c=79时43+93=793。
    输入两个整数x, y, 求满足x<=a,b,c<=y的整数解的个数。

    Input

     

    输入最多包含10组数据。每组数据包含两个整数x, y(1<=x,y<=108)。

    Output

     

    对于每组数据,输出解的个数。

    Sample Input

    1 10
    1 20
    123 456789

    Sample Output

     

    Case 1: 0
    Case 2: 2
    Case 3: 16

    题目都是骗人的,暴力就完事

    #include <stdio.h>
    int main()
    {
        int x,y,a,b,c,num,k=1;
        while(scanf("%d%d",&x,&y)!=EOF)
        {
            num=0;
            for(a=x; a<=1000&&a<=y; a++)
                for(b=x; b<=1000&&b<=y; b++)
                {
                    int s=a*a*a+b*b*b;
                    if(s%10!=3) continue;
                    c=s/10;
                    if(c>=x&&c<=y) num++;
                }
            printf("Case %d: %d
    ",k++,num);
        }
        return 0;
    }

    4638: 单位转换 分享至QQ空间

    Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
    Total Submit: 633            Accepted:428

    Description

     

    BobLee最近在复习考研,在复习计算机组成原理的时候,遇到了一个问题。就是在计算机存储里面的单位转换。我们都知道1MB=1024KB,1KB=1024B,1B=8bit,他在做题的时候经常会遇到格式各样的,比如多少MB,KB,B什么的,但是都要转换为bit,题目做的太多他都迷茫了,现在需要你通过程序来帮他解决这个问题。

    Input

     

    输入为多行未化简的数据,如xMB,xKB,xB,xbit,(1<=x<=50)

    Output

     

    输出为换算过后的数据,ybit

    Sample Input

    1MB
    1KB
    1B
    1bit

    Sample Output

     

    8388608bit
    8192bit
    8bit
    1bit

    简单模拟,请注意细节

    #include <stdio.h>
    #include <string.h>
    int main()
    {
        int n;
        char s[3];
        while(~scanf("%d%s",&n,s))
        {
            if(strcmp(s,"B")==0)
                n=n*8;
            else if(strcmp(s,"KB")==0)
                n=n*8*1024;
            else if(strcmp(s,"MB")==0)
                n=n*8*1024*1024;
            printf("%dbit
    ",n);
        }
        return 0;
    }

    4650: 调皮的萌萌 分享至QQ空间

    Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
    Total Submit: 218            Accepted:89

    Description

     

    调皮的萌萌喜欢在传输的数据上做改动,具体方法如下:
    在一串由0、1组成的数据中,执行任意次数(可能为0次)的如下的操作:
    任意选取相邻的两位a、b,把这两位变成a or b、a xor b。
    比如:10可变为11,11可变为01或10.
    给你两个01串s1、s2,请你s2是否有可能是萌萌用s1改动的来的数据。

    Input

     

    输入数据包含多组测试数据。
    每组数据包含两行0、1组成的字符串s1、s2。

    Output

     

    对于每组数据,如果s2可由s1改动而来,输出“YES”,否则输出“NO”。

    Sample Input

    11
    10
    1
    01
    000
    101

    Sample Output

    YES
    NO
    NO

    找找规律,按题意贪心吧,不过能证明是对的,CF DIV2B往往是这种类型

    #include <stdio.h>
    #include <string.h>
    int main()
    {
        char s1[1000],s2[1000];
        while(~scanf("%s",s1))
        {
            int f,t,i;
            f=0;
            t=0;
            int l1=strlen(s1);
            scanf("%s",s2);
            int l2=strlen(s2);
            for(i=0; s1[i]!=''; i++)
                if(s1[i]=='1')
                {
                    f++;
                    break;
                }
            for(i=0; s2[i]!=''; i++)
                if(s2[i]=='1')
                {
                    t++;
                    break;
                }
            if(l1==l2&&f&&t)
                printf("YES
    ");
            else if(l1==l2&&!f&&!t)
                printf("YES
    ");
            else
                printf("NO
    ");
        }
    
        return 0;
    }

    3360: 回文素数 分享至QQ空间

    Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
    Total Submit: 409            Accepted:95

    Description

     

    151 是一个回文素数,因为它既是一个素数又是回文数(回文数是指一个数 从左到右 和 从右到左 读的结果一样).

    试写一个程序计算区间 [ a , b ] 内的所有回文素数.( 5 <= a < b <= 100,000,000 )

    Input

    只有一组测试数据: a b

    Output

    输出[a,b]区间内所有回文素数,每个数占一行

    Sample Input

     5 500

    Sample Output

    5
    7
    11
    101
    131
    151
    181
    191
    313
    353
    373
    383

    这个数不多的,我们可以去生成这些回文数啊,一半扫就可以了

    素数的话预处理时间可能都不够

    solution from kotae_chan 

    #include "bits/stdc++.h"
    using namespace std;
    int rev(int n)
    {
        int ans=0,t=1,nt=n;
        while(nt)
        {
            ans=ans*10+nt%10;
            t*=10;
            nt/=10;
        }
        return ans+n/10*t;
    }
    int ipm(int n)
    {
        if(n<2)return 0;
        if(n==2||n==3)return 1;
        if(n%6!=1&&n%6!=5)return 0;
        for(int i=2; i*i<=n; i++)
        {
            if(n%i==0)return 0;
        }
        return 1;
    }
    int ans[200000]= {0};
    int main()
    {
        int n,pos=1,i,a,b;
        ans[0]=11;
        for(i=1; i<10000; i++)
            if(ipm(rev(i)))ans[pos++]=rev(i);
        scanf("%d%d",&a,&b);
        sort(ans,ans+pos);
        for(i=upper_bound(ans,ans+pos,a-1)-ans; ans[i]<=b&&i<pos; i++)
            printf("%d
    ",ans[i]);
    }

    我的做法稍微麻烦些,就是去dfs这个字串,那么我可以预处理素数,让我代码更快

    #include<stdio.h>
    #include<string>
    using namespace std;
    int a,b,ans;
    string c="0123456789";
    bool pri(int p)
    {
        int i=3;
        if(p==2)return 1;
        for(; i*i<=p; i+=2)
            if(!(p%i))
                return 0;
        return 1;
    }
    void DFS(int d,int t,string s)
    {
        if(d==t/2+(t%2) +1 )
        {
            int num=0;
            for(int i=0; i<s.length(); i++) num=num*10+(s[i]-'0');
            if(t%2==0) for(int i=s.length()-1; i>=0; i--) num=num*10+(s[i]-'0');
            else for(int i=s.length()-2; i>=0; i--) num=num*10+(s[i]-'0');
            if(a<=num&&num<=b&&pri(num)) printf("%d
    ",num);
            return;
        }
        for(int i=(d==1)?1:0; i<=9; i++)
        {
            if(d==1&&i%2==0) continue;
            string p=c.substr(i,1);
            DFS(d+1,t,s+p);
        }
    }
    int main()
    {
        scanf("%d%d",&a,&b);
        int x=a,y=b,L=0,R=0;
        while(x) x/=10,L++;
        while(y) y/=10,R++;
        for(int i=L; i<=R; i++) DFS(1,i,"");
        return 0;
    }

    5279: 马拉松比赛 分享至QQ空间

    Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
    Total Submit: 65            Accepted:40

    Description

     

    有一块矩形的海域,其中有陆地也有海洋,这块海域是CSUFT_ACM集训队的训练基地,这一天,昌神说要集训队的队员不能总是训练,于是昌神提出了中南林ACM集训队第一场环陆马拉松比赛,顾名思义就是围绕着陆地的边缘跑步。现在昌神给你出了个问题:这个比赛最多需要跑多少距离。 

    注意,这块海域上可能有多块陆地,比赛的场地可能设在任何一块陆地上。 

    Input

     

    多组输入,每组输入第一行给出两个数字R,C(1 ≤ R, C ≤ 50)。表示这组输入的01矩阵的行数和列数,接下来R行每行输入C个数字(0表示海水,1表示陆地),上下左右相连的陆地算作一块整的陆地。每个0或者1表示一个边长为1正方形。输入保证至少有一块陆地。 

    Output

     

    输出陆地周长的最大值。里面的边长也要算在内,例如上图中有四块陆地,最长周长是12 + 4=16。第二长的周长是8,最小的周长是4。 

    Sample Input

     

    1 1
    1
    6 5
    01110
    01010
    01110
    00000
    01010
    10011

    Sample Output

     

    4
    16

    这个题在我的认知里就是dfs就行的题,就是搜嘛,找到了就是多了边长4要扩展就是少了边长1

    #include<stdio.h>
    #include<string.h>
    int vis[55][55];
    char a[55][55];
    int dir[4][2]= {1,0,-1,0,0,-1,0,1};
    int s,ans,n,m;
    void dfs(int x,int y)
    {
        if(x==0||y==0||x>n||y>m||a[x][y]=='0'||vis[x][y]==0)
            return;
        s+=4;
        vis[x][y]=0;
        for(int i=0; i<4; i++)
        {
            int ax=x+dir[i][0];
            int ay=y+dir[i][1];
            if(a[ax][ay]=='1')
            {
                s--;
                if(vis[ax][ay])
                    dfs(ax,ay);
            }
        }
    }
    int main()
    {
        while(~scanf("%d%d",&n,&m))
        {
            getchar();
            ans=0;
            memset(a,0,sizeof(a));
            memset(vis,1,sizeof(vis));
            for(int i=1; i<=n; i++)
                scanf("%s",a[i]+1);
            for(int i=1; i<=n; i++)
                for(int j=1; j<=m; j++)
                {
                    if(a[i][j]=='1'&&vis[i][j])
                    {
                        s=0;
                        dfs(i,j);
                        if(s>ans)ans=s;
                    }
                }
            printf("%d
    ",ans);
        }
        return 0;
    }

    5149: FQ 的函数 分享至QQ空间

    Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
    Total Submit: 7            Accepted:6

    Description

     

    FQ 是个喜欢数学的孩子。有一天,FQ 发明了一个函数 FQ(n,p)。FQ(n,p)的值描述了 n!最多可以被 p 的多少次幂整除,其中 p 为一个素数。

    举例来说,对于 FQ(8,3),我们要考查 8! = 8×7×6×5×4×3×2×1 = 40320。

    很容易发现,它可以被 32 整除,但是不能被 3 3 整除。所以 FQ(8,3) = 2,表示 8!最多可以被 32 整除。

    对 FQ(k,p)可以严格的定义: k!可被pFQ(k,p)整除,但是不能被pFQ(k,p)+1整除。

    ZQ 对 FQ 的发现很感兴趣,但是他对 FQ 在这个函数的讨论中仅使用十进制表示不满。ZQ于是定义了ZQ(n,p)。其中n 是个p进制正整数,并且 ZQ(n,p)=FQ(n10 ,p)。其中n10表示 n 转换成十进制之后对应的数字。

    本题的任务就是求出 ZQ(n,p)的值。注意:请将答案表示为十进制数。

     

    Input

     

    输入一个 T (T ≤ 50)表示 T 组数据。

    每组测试数据占一行,是用空格分开的两个正两个整数 n,p。

    数据保证:

    (1) p≤16,并且 p 是素数。

    (2) n 是一个 p 进制正整数,长度不超过105 。

    (3) 在高于十进制的进制中,使用 A 表示 10,B 表示 11,C 表示 12,D表示 13,E 表示 14,F 表示 15。

     

    Output

     

    对于每组测试用例,输出一行,包含一个整数表示你的答案。请将答案表示为十进制数。另外,由于答案可能太大,你只需要输出答案模 1000000007 的余数。

     

    Sample Input

    2
    11 2
    1A1 11

    Sample Output

     

    1
    22

    Hint

    样例第一组 112 = 310 ,而 3!=6,可以被 21 整除,但不能被 2整除。

    样例第二组 1A111 = 23210 ,232! 可以被 1122 整除,但是不能被 1123整除

    这个题算是个数学题吧,自认为是这场比赛的防ak题,当时做了蛮久都没有解决。但是大家一顿操作猛如虎,给大家鼓掌

    由于p是质数,不存在两个不同数字(非p倍数)乘起来是p的倍数。 那么就只要判断1~n里p的倍数的个数就好了。 1A1有00~1A个p的倍数(最低位保持0的情况),0~1个p的倍数(最低两位保持0的情况)。 所以枚举最低若干位为0,加起来即可

    千万不要想10去解决问题,10不是素数啊,10的话有5就行了

    但是这个数也是p进制的,它的倍数就是补0,所以就是给其1~(length-1)位补零,都是其贡献,所以可以O(n)解决

    #include<bits/stdc++.h>
    using namespace std;
    const int MD=1e9+7;
    string s;
    int main()
    {
        ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
        int T,p;
        cin>>T;
        while(T--)
        {
            cin>>s>>p;
            __int64 t=0,sum=0;
            for(int i=0; s[i+1]; i++)
                t=(t*p%MD+(s[i]<='9'?s[i]-'0':s[i]-'A'+10))%MD,sum=(sum+t)%MD;
            cout<<sum<<"
    ";
        }
        return 0;
    }

    4841: FBI树 分享至QQ空间

    Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte
    Total Submit: 26            Accepted:21

    Description

     

    我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。

      FBI树是一种二叉树1,它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2^N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:

      1) T的根结点为R,其类型与串S的类型相同;

      2) 若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由左子串S1构造R的左子树T1,由右子串S2构造R的右子树T2。

      现在给定一个长度为2^N的“01”串,请用上述构造方法构造出一棵FBI树,并输出它的后序遍历2序列。

     

    Input

     

    输入的第一行是一个整数N(0<=N<=10),第二行是一个长度为2^N的“01”串。

    Output

     

    输出包括一行,这一行只包含一个字符串,即FBI树的后序遍历序列。

    Sample Input

     

    3
    10001011

    Sample Output

     

    IBFBBBFIBFIIIFF

    Source

    NOIP2004 普及组

    经典的二叉树,也是递归去实现,但是这个过程要思考起来比较麻烦,需要熟识二叉树的遍历。今年天梯赛有个专题的,可以去做一下

    2018天梯赛第二次训练

     

    #include <stdio.h>
    #include <string.h>
    char s[25];
    void fbi(int left,int right)
    {
        if(left>right) return ;
        int mid=(left+right)/2,B=0,I=0;
        if(left!=right)
        {
            fbi(left,mid);
            fbi(mid+1,right);
        }
        while(left<=right) if(s[left++]=='0') B++;
            else I++;
        if(B!=0&&I!=0) printf("F");
        else if(I!=0&&B==0) printf("I");
        else printf("B");
    }
    int main()
    {
        int n;
        scanf("%d",&n);
        getchar();
        gets(s);
        int l=strlen(s);
        fbi(0,l-1);
        return 0;
    }
  • 相关阅读:
    【梦话区】一直迷茫的net小伙
    【ASP.NET】登陆成功后如何跳转到上一个页面
    【C#】强类型DataSet实现登录次数限制
    【ASP.NET】ItemDataBound之repeater 和 listview
    【网页设计】框架的高度随框架里面的内容的多少而改变——转
    【连载】Scala程序设计:Java虚拟机多核编程实战——简介
    博客园图灵杯第五届博问大赛(2010.8.3~2010.9.2)
    【连载】高效人士的116个IT秘诀(第2版)——秘诀23早晨就来一次突破
    图灵2010.08书讯
    图灵五周年生日聚会圆满成功,多家媒体对此进行报道
  • 原文地址:https://www.cnblogs.com/BobHuang/p/9977405.html
Copyright © 2011-2022 走看看