摘要:
该题要求将小数通通化为分数,这个过程是一个纯数学运算,大概是小学的奥赛题吧。。哇哇。。。。如果是普通分数,好说,就是同乘以10^x次方的数,再约分就可以了。例如 0.234--> 234/1000 --> 117/500如果是纯循环小数,那么就要借助方程来解了。例如 0.(1234) 令x= 0.(1234), 对这个循环小数有 10000x- x= 1234, 解出来 x= 1234/9999, 在约分就行了 这里等于 1234/9999如果是这种情况呢 0.24(765) 可以很清楚的认识到,这是前两者的综合版,分开算再通分,约分...... 这里还是借助方程来解。例如 0.2 阅读全文
摘要:
这题的拓扑排序有一个一定要处理的地方就是要将一次所能够pop出来的点在一次循环中全部取出来,然后再在基本工资的基础上自增一。代码如下:#include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct a{ int sign; struct a *next;} E;struct b { int cnt; struct a *next;} V[10005];int queue[10005], front, rear, M, N, hash[10005];void insert( int 阅读全文
摘要:
该题理解为将每一个字母与两个模式串进行匹配,如果不符合则回溯进行匹配。一个例子: aaabb aaaaaacd aaaaaacaaabbd到组合串第四个字母时,'a' 不能够与A串匹配,于是以状态为A:aaa__, B: a_______,组合串匹配到第五个字母进行递归,......当匹配到组合串的第七个字母 'c'时,该字母与A串以及B串的第四个字母均不能匹配,这时必定将回溯到组合串第三个'a'的匹配过程中,并将第三个 'a' 分配给B串,而这时,A串又会和组合串中的第四个'a' 匹配,接下来,又将以A:aaa_ 阅读全文
摘要:
题中先用并查集判定是否所有点都有联系,即能够拼成一个连通的无向图。 再判定入度为零的点是否为1即可。代码如下:#include <stdio.h>#include <string.h>char name[2010][50];int cnt, N, dg[2010], hash[2010], set[2010];int find( char *n ){ int i; for( i= 0; i< cnt; ++i ) { if( strcmp( n, name[i] )== 0 ) { return i; } } strcpy( name[cnt], n ); ret 阅读全文