10月, 2009 的存档

不简单的简单问题

这题弄了我好久,终于比标程还快了.. 高精压位+二分..

算压位后的数字的长度是在大脑发胀,所以写得有点长,所以main函数也很乱了..

题目 简单问题 源程序名 easy.???(pas|c|cpp)
输入文件名 easy.in
输出文件名 easy.out
时间限制 1s/testcase
空间限制 32MB
- 问题描述 大家都喜欢在pascal中使用sqrt函数。现在你需要自己写一个sqrt函数:对于给定的正整数X(不超过1000位),计算sqrt(X)的整数部分。
- 输入数据 一行,X
- 输出数据 一行,代表sqrt(X)的整数部分
- 样例输入 1234
- 样例输出 35

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#include< stdio.h >
#include< string.h >
char ss[1009];
long a[1009],l[1009],r[1009],b[1009],zz;
double c[1009];//a为目标,l为左,r为右,c为临时,b为当前
void erfen()
{
//memset(b,0,sizeof(b));
    int len=zz,i;
    for (i=0;i < =zz;i++)
        b[i]=l[i]+r[i];
    for (i=len;i > =0;i--)
    {
        if (b[i]%2)
        {
            b[i-1]+=10000;
        }
        b[i]/=2;
    }
    for (i=0;i < =zz;i++)
    {
        if (b[i]>9)
        {
            b[i+1]+=b[i]/10000;
            b[i]%=10000;
        }
    }
}
bool pandeng()
{
    int i=zz;
    while (l[i]==r[i])i--;
    if (i==0)
    {
        if (r[i]-l[i]==1)return true;
        else return false;
    }
    else return false;
}
bool pan()
{
    memset(c,0,sizeof(c));
    int k,i,j;
    for (i=0;i < =zz;i++)
    {
        for (j=0;j < =zz;j++)
        {
            c[i+j]+=b[i]*b[j];
        }
    }
    for (i=0;i < =zz*2;i++)
    {
        if (c[i]-9999.0>1e-6)
        {
            k=c[i]/10000.0;
            c[i+1]+=k;
            c[i]-=k*10000.0;
        }
    }
    int x=zz*2;
    if (c[zz*2+1])
    {
        x=zz*2+1;
    }
    for (i=x;i > =0;i--)
    {
        if (c[i] > a[i])return true;
        else if (c[i] < a[i])return false;
    }
    return false;
}
void copy(long *s1,long *s2)
{
    int i;
    for (i=0;i < =zz;i++)
    {
        s1[i]=s2[i];
    }
}
int main()
{
    FILE *fp,*fo;
    fp=fopen("easy.in","r");
    fo=fopen("easy.out","w");
    fgets(ss,1009,fp);
    int len=strlen(ss);
    int i,j;
    if (ss[len-1]=='\n')
    {
        ss[len-1]='\0';
        len--;
    }
    int chang=len%4,ttmmpp=len/4;
    for (i=0;i < chang;i++)
    {
        a[len/4]*=10;
        a[len/4]+=ss[i]-'0';
    }
    for (i=0;i < ttmmpp;i++)
    {
        a[ttmmpp-i-1]=(ss[i*4+chang]-'0')*1000+(ss[i*4+1+chang]-'0')*100+(ss[i*4+2+chang]-'0')*10+ss[i*4+3+chang]-'0';
    }
    zz=(len/2)/4;
    if (len%4==0)zz--;
    if (len%4!=0)
    {
        int ccc=((len%2==0)?len/2:(len/2+1))%4;
        if (ccc==0)
        {
            l[zz]=1000;
            r[zz]=9999;
        }
        else if (ccc==1)
        {
            l[zz]=1;
            r[zz]=9;
        }
        else if (ccc==2)
        {
            l[zz]=10;
            r[zz]=99;
        }
        else if (ccc==3)
        {
            l[zz]=100;
            r[zz]=999;
        }
    }
    else
    {
        l[zz]=1000;
        r[zz]=9999;
    }
    for (i=zz-1;i > =0;i--)
    {
        r[i]=9999;
    }
    int x;
    while (!pandeng())
    {
        erfen();
        if (pan())copy(r,b);
        else copy(l,b);
    }
    fprintf(fo,"%d",l[zz]);
    for (i=zz-1;i > =0;i--)
    {
        fprintf(fo,"%04d",l[i]);
    }
    fclose(fo);
    fclose(fp);
    return 0;
}

麻衣生日快乐!

麻衣一年一度的生日又到了.. 今年是否同去年又有什么不同呢…

10th Anniversary…

f181b41fec94f826314e157b

4c9c7fd38697d92c3bf3cf49

4c5918b679a01ed330add162

混乱…

刚才学校晚自习时停了一会电..那可叫一个大乱啊!!
所有人都乱喊乱叫,学校的规章制度在这一瞬间立即作废…
而我,一个人在机房里(别人刚好不在),听着外面的声音,不禁觉得好笑..
人类规定的制度究竟是为了什么呢?在最原始的条件下,任何规章制度,甚至文明都只不过是一个物种编造出来的东西罢了..只有原始的本能(生存)才是最重要的…
所以所有人会大喊大叫乱跑乱跳的,老师也无法干涉…
当我去教室看情况时,教师里同学们都在玩电筒以及一切能发光的物质,这种时候,光明才是最重要的,老师也只是在一旁笑着看..
可惜不久就来电了..这次停电也许对别人来说只不过是一场激动的时刻,给我们一点愉悦,但也不过是紧张生活中的小插曲。但对我来说却是一场思索..

音乐联想..

我发现日本音乐都差不多,开始一段轻柔的音乐,突然音调一转,步入正题,或者就是一段高潮。然后三四句起个头,三四句延续,七八句高潮,重复以上,然后再是高潮的重复…
然后音调也那样,很多都是似曾相识的..怪不得音乐越听越没味…
难道就不能有所创新呢?我不懂音乐,但是还是认为音乐不能有所谓的框框条条…相比之下,那些纯音乐就好的多。莫扎特,贝多芬的歌曲之所以长久,就是因为他们音乐的独特…而如今的流行歌手,不仅是日本,都不可避免地为了高产量而导致低质量…
而我又有什么办法呢?只能说说而已了..

越上网就越懒?

发现名人都不怎么更新博客的,即使只是我们学生中的名人,努力的人总是很忙..除了中川翔子(日本博客女王,也算是世界的吧..数十亿访问量)之外..

而那些经常hanging in the Internet 的人都不怎么得势(我所见的),比如我,我更新这么频繁,但我不是名人,怎么能有访问量呢?而名人博客写得少,甚至别人代写,却那么多人看….而且那么多时间上网的人自然没有时间去干什么事情..

所以说越上网在现实中就越懒?所以我还是slow down比较好..

第 1 页,共 2 页12
回到顶部
 
湘ICP备10004285号