博文
又一道程序设计题:有趣的分组(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 ......
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......