博文

又一道程序设计题:有趣的分组(2009-05-22 16:43:00)

摘要:    今天朋友要我帮忙解决个问题,还是蛮有趣的,于是就写了这个                              有趣的分组:A Funny Grouping 1.Problem     L班有14名成员,代号分别以英文字母命名(A~N),现在分组完成一件事情,分组要求包括所有成员,一组中最多允许3名成员,有些成员可以一个人一组,同时也允许某些组员兼任在其他小组中,但是根据性格和特长的特点,只能作特定的搭配。搭配被保存在IN.txt中。现要求分组越少越好。求最少应分多少组,该组数下各方案是怎样分的。 2.Input     输入数据包含每一小组成员,一共33个组,组和组之间用一个‘,’或一个转行符隔开,组内成员之间没有间隔。 3.Output 首先按照以下格式输出分组的数目(max),可行方案数(num)。 The number is (max). We have find (num) arraies suitable. 然后接下来的每行中,首先输出方案号,然后一个冒号,然后是方案中每一组的编号,编号之间用空格隔开。 4.Sample Input:(IN.txt) ABC,BCE,FGH,GHI,HIK,HJK AB,AE,BC,BE,CD,CE,DE,EF,EJ,FG,FH,GH,GI,HI,HJ,HK,IK,IL,JK,JM,KL,KM,LN,MN B,D,L   5.Sample Output:(OUT.txt) The number is 6. We have find 6 arraies suitable. 1 : 1 3 13 24 25 30 2 : 1 6 13 16 24 30 3 : 1 3 6 13 24 30 4 : 1 3 13 23 26 29 5 : 1 5 13 16 26 29 6 ......

阅读全文(3031) | 评论:0

OpenGL下实现鼠标交互式的程序(2009-04-23 22:49:00)

摘要:    最近在用OpenGL做三维程序,其中用到了用鼠标使物体旋转的功能,于是欣然将其总结一下,做成另一个完整的程序,下面将给出整个程序的源代码。   一,所需支持     程序使用了GLUT库,需要下载库文件,执行时需要相应的动态链接库。在Windows平台下的下载地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip。如果找不到就在http://www.opengl.org/主页找一下吧。 Windows环境下安装GLUT的步骤:   1、将下载的压缩包解开,将得到5个文件 2、假设C盘是系统盘,Microsoft Visual Studio安装在c:\Program Files\   (1)glut.h 放在“c:\Program Files\Microsoft Visual Studio\VC98\include\GL”; (2)glut.lib和glut32.lib放在“c:\Program Files\Microsoft Visual Studio\VC98\lib”; (3)glut.dll和glut32.dll放到“C:\Windows\System32”   二,原理
 x = r * sin(φ) * cos(α)  z = r * sin(φ) * sin(α)  y = r * cos(φ) 鼠标的水平移动导致α改变,鼠标的垂直移动导致φ改变   三,源程序 (将此代码保存为file.c,然后编译链接即可执行了) #include <stdlib.h> #include <stdio.h> #include <math.h>  #include <GL/glut.h>            /*OpenGL Utility Toolkit*//*该文件已包含了GL.h 和Gl......

阅读全文(15350) | 评论:7