编程实例 取珠子

编程实例 取珠子,第1张

你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的。 这里是 n=29 的二个例子:

1 2 1 2

r b b r b r r b

r b b b

r r b r

r r w r

b r w w

b b r r

b b b b

b b r b

r r b r

b r r r

b r r r

r r r b

r b r r r w

图片 A图片 B

r 代表 红色的珠子

b 代表 蓝色的珠子

w 代表 白色的珠子

第一和第二个珠子在图片中已经被作记号。

图片 A 中的项链可以用下面的字符串表示:

brbrrrbbbrrrrrbrrbbrbbbbrrrrb .

假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子,在另一端做同样的事(颜色可能与在这之前收集的不同)。 确定应该在哪里打破项链来收集到最大多数的数目的子。 Example 举例来说,在图片 A 中的项链,可以收集到8个珠子,在珠子 9 和珠子 10 或珠子 24 和珠子 25 之间打断项链。 在一些项链中,包括白色的珠子如图片 B 所示。 当收集珠子的时候,一个被遇到的白色珠子可以被当做红色也可以被当做蓝色。 表现项链的字符串将会包括三符号 r , b 和 w 。 写一个程序来确定从一条被供应的项链最大可以被收集珠子数目。

PROGRAM NAME: beads

INPUT FORMAT

第 1 行: N, 珠子的数目

第 2 行: 一串度为N的字符串, 每个字符是 r , b 或 w。

SAMPLE INPUT (file beads.in)

29

wwwbbrwrbrbrrbrbrwrwwrbwrwrrb

OUTPUT FORMAT

单独的一行包含从被供应的项链可以被收集的珠子数目的最大值。

SAMPLE OUTPUT (file beads.out)

11

代码如下

#include <stdio.h>

#include <stdlib.h>

#define BEAD_MAX 350

char oriLace[BEAD_MAX +1] =""

int len

enum BeadColor

{

white=0,

black=1,

red =2,

}

struct SBead

{

enum BeadColor color

int amount

struct SBead *prev

struct SBead *next

}

struct SBead *necklace = NULL

// struct SBead* newSBead(char color)

int compressNecklace()

int searchMax()

int searchLeft (enum BeadColor, struct SBead*)

int searchRight(enum BeadColor, struct SBead*)

int deleteNecklace()

main ()

{

FILE *fin = fopen ("beads.in", "r")

FILE *fout = fopen ("beads.out", "w")

int maximum

fscanf( fin, "%d%*c", &len)

fscanf( fin, "%s", oriLace)

compressNecklace()

maximum =searchMax()

fprintf(fout,"%d\n",maximum)

deleteNecklace()

fclose(fin)

fclose(fout)

return 0

}

int compressNecklace()

{

int i=0, j=0

char c_i, c_j

int color =0

int count = 0

struct SBead *pBead,*curBead

i=0

while( i<len )

{

c_i = oriLace[i]

pBead = (struct SBead *)malloc( sizeof(struct SBead))

switch(c_i)

{

case 'w': color = 0

break

case 'b': color =1

break

case 'r': color = 2

break

default: break

}

pBead->color =color

for(j=ij<lenj++)

{

c_j = oriLace[j]

if(c_j != c_i)

break

}

pBead->amount= j-i

if( necklace == NULL)

{

necklace = curBead =pBead

pBead->next = curBead

pBead->prev = necklace

}

else

{

necklace->prev = curBead->next = pBead

pBead->prev = curBead

pBead->next = necklace

curBead = pBead

}

i = j

}

return 0

}

int searchMax()

{

struct SBead *pBead,*curBead

int rl,rr,bl,br//red_left,red_right,black_lest,black_right

int max_l,max_r,max = 0

if(necklace->next == necklace)

return necklace->amount

pBead = necklace

do

{

rl = searchLeft(red, pBead)

bl = searchLeft(black, pBead)

rr = searchRight(red, pBead)

br = searchRight(black, pBead)

max_l =(rl>bl)?rl:bl

max_r =(rr>br)?rr:br

max= ((max_l+max_r) >max)?(max_l+max_r):max

pBead = pBead->next

}while( pBead != necklace)

max = (len>max)?max:len

return max

}

int searchLeft (enum BeadColor souColor, struct SBead* souBead)

{

int cumulative =0

struct SBead *pBead = souBead

if( (pBead->color != souColor ) &&(pBead->color != white) )

return 0

else

cumulative = pBead->amount

pBead = pBead->prev

while( (pBead != souBead)

&&((pBead->color == souColor)

||(pBead->color == white)

)

)

{

cumulative+= pBead->amount

pBead = pBead->prev

}

return cumulative

}

int searchRight(enum BeadColor souColor, struct SBead* souBead)

{

int cumulative =0

struct SBead *pBead

pBead = souBead = souBead->next

if( (pBead->color != souColor ) &&(pBead->color != white) )

return 0

else

cumulative = pBead->amount

pBead = pBead->next

while( (pBead != souBead)

&&((pBead->color == souColor)

||(pBead->color == white)

)

)

{

cumulative+= pBead->amount

pBead = pBead->next

}

return cumulative

return 0

}

int deleteNecklace()

{

struct SBead *pBead,*curBead

pBead = necklace

necklace->prev->next = NULL

while( pBead != NULL )

{

curBead = pBead

pBead = pBead->next

free(curBead)

}

return 0

}

喜欢手工的朋友一定都了解过串珠这种材料吧,的确,虽然表面上看来它们很不起眼,往往是使用塑料材料制作而成的,而且能够提供选择的颜色似乎也很是普通,但是实际上利用串珠进行手工制作是许多朋友都特别喜欢和青睐的一种方式,具体可以借此收获到独一无二的手工饰品,也能够体会到手工制作的乐趣,那么接下来小编为大家具体介绍的就是关于串珠手工DIY方面的做法以及具体关于打结方面的 *** 作和技巧了,有兴趣了解的朋友可以结合下文所说参考实际内容作出合适合理的选择。

一、串珠

一、串珠

如今的姑娘们,不喜欢与人同款撞衫,都喜欢有个性化的饰品,喜欢依着自己的心情爱好服饰去DIY一串属于自己的手链项链。可是很多姑娘不知道如何将手链漂亮的收尾,今天,龙结手工就来教各位爱美的姑娘如何收尾:

先说说普通手链的收尾方法,串珠的绳子是包芯d力线:

1、先把d力线与珠子穿好,珠子的数量根据珠子大小不同数量不同,用手腕简单比一下

2、交叉打死结

3、再打一个死结,拉紧

4、把多余的线头齐头减掉,并抽拉藏到附近的珠子孔中去。

二、手工DIY-串珠水晶小狗做法:

二、手工DIY-串珠水晶小狗做法:

材料:

* 水晶胶珠10mm大约240粒(浅色)

* 水晶胶珠10mm深色做间色,大约40粒

* 鼻子及眼睛共3粒黑色珠

* 9kg鱼丝1卷(如用较小的珠做,可用细鱼丝,如4.5kg鱼丝等)

做法:

身体的穿法

1.先在鱼丝左边穿上2粒浅色10mm珠,右边依次穿上一深一浅色珠,左线对穿在右线的第1粒珠上,形成一组由四粒珠组成的菱形线图案。

2.左线穿上2粒浅色珠,右线穿上1粒珠,右线对穿在左线的第1粒珠上,重复上述程序共做15次。

3.在左线穿上1粒珠,右线穿上1粒珠,然后穿回开端中间的1粒珠,成为一个圈子。

4.把圈子平放,用右线向右角穿过2粒珠,加上2粒珠,再穿回这4粒珠子回穿行线一次。

5.将线向左过1粒珠,加2粒珠,再穿回右边的珠子,回穿一次,以4粒珠子为一组合,按次序穿成身体的底部。

小狗背部的穿法

6.将身体反过来,将项部间色穿上颜色珠,先在线上依序穿1粒浅色,2粒深色珠,回穿行线一次,再穿上2粒浅色珠,回穿行线一次,共做13次至项部,同样穿上2粒深色珠,依旧回穿行线,而项部中央则穿上深色珠子。

7.依照小狗肚部的穿法,即可。

小狗的尾巴

8.把末端的中央,用线分两边,每边穿上1粒深色珠,再直上穿3粒深色珠,回穿紧收鱼丝。

小狗的头部穿法

小狗的口

9.从小狗的项部开始,将线穿上3粒浅珠,回线穿一次。接着再穿上1粒浅色珠,1粒红色珠,1粒浅色珠,回线穿一次。

小狗的鼻子

10.穿上3粒浅色珠,回线穿一次。依照口的位置,加上1粒黑色珠作鼻子再加上3粒珠,回线一圈。

小狗的头

11.从右边脸孔开始,先将鱼丝横穿过1粒珠,依序加上1粒浅色珠,1粒黑色珠(做眼睛用),回线一圈。然后依次穿至头部的左边,左眼做法与右眼相同。完成后,再依次将每组穿好,把头部压扁。在头顶的部分,用鱼丝加上1粒珠将前后组合。

小狗的耳朵

12.将鱼丝加上3粒深色珠,回线穿一圈,另一边做法相同。

小狗的爪子

13.在身体底部的4个角位上,第1层用线穿上3粒浅色珠,回穿行线,再穿上2粒浅色珠,同样回穿,完成后,在第2层用深色珠依第1层的穿法至完成止。

完成

14.在项部挂上1个铃铛,就完成可爱的小狗了

上文为大家举例的是关于串珠手工DIY方面的做法和技巧,不仅仅包括详细细致的步骤,而且还有更进一步的举例分析,除此之外,在串珠手工制作过程中扮演关键角色的一个步骤也就是串珠打结方面的方法我们也有教给大家,有兴趣了解的朋友就可以结合实际说明或者参考专业人士的制作建议尝试多次入手 *** 作。相信可以借此收获到独一无二的饰品,也能够体验到独一无二的手工体验。

翡翠珠子的加工,大致有八道工序:

1.选料,部位好的没有裂的,最好是有种或者有色的。

2.切割,把有裂或者不好的地方切掉,把大块的,型状不好的切成小块。

3.吸珠,把切好的一块放在工作台上有吸筒,也可以吸有色或者种水好的地方,有各式样的规格。

4倒棱,吸的珠都是桶状,需要放在倒棱机上倒棱,让桶状变成圆型。

5粗磨,倒完棱差不多棱角都磨没有了,变成近似圆型,再换粗磨盘。

6细磨,粗磨完后就要细磨,圆型成型,就是表面细磨。

7打孔,细磨完就是打孔,好珠子都是人工选好部位打,要求质量高,大量的或者普通的珠子都用超声波,效率高。

8抛光,孔打好后就是抛光了,一般都是用震动抛光机抛。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10958252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存