• ACM解题报告(北大)

    POJ部分解题代码 解题报告:Fence 题目来源:POJ 1031 解法或类型: 计算几何 作者:杨清玄 Fence Time Limit:1S Memory Limit:1000K Total Submit:103 Accepted:26 Description There is an area bounded by a fence on some flat field. The fence has the height h and in the plane projection it has a form of a closed polygonal line (without self-intersections), which is specified by Cartesian coordinates (Xi, Yi) of its N vertices. At the point with coordinates (0, 0) a lamp stands on the field. The lamp may be located either outside or inside the fence, but not on its side as it is shown in the following sample pictures (parts shown in a thin line are not illuminated by the lamp): The fence is perfectly black, i.e. it is neither reflecting, nor diffusing, nor letting the light through. Research and experiments showed that the following law expresses the intensity of light falling on an arbitrary illuminated point of this fence: I0=k/r where k is a known constant value not depending on the point in question, r is the distance between this point and the lamp in the plane projection. The illumination of an infinitesimal narrow vertical board with the width dl and the height h is dI=I0*|cosα|*dl*h where I0 is the intensity of light on that board of the fence, α is the angle in the plane projection between the normal to the side of the fence at this point and the direction to the lamp. You are to write a program that will find the total illumination of the fence that is defined as the sum of illuminations of all its illuminated boards. Input The first line of the input file contains the numbers k, h and N, separated by spaces. k and h are real constants. N (3 <= N <= 100) is the number of vertices of the fence. Then N lines follow, every line contains two real numbers Xi and Yi, separated by a space. Output Write to the output file the total illumination of the fence rounded to the second digit after the decimal point. Sample Input 0.5 1.7 3 1.0 3.0 2.0 -1.0 -4.0 -1.0 Sample Output 5.34 Source Northeastern Europe 1998 解题思路: 本题是一道计算几何的题目。首先,由于题目可以得到dI=I0*|cosα|*dl*h 也就是说一条边的总照度为 = = =a*h*k 其中下,X1,X2为一条边的坐右端点,a为这条边对原点所张的角度 所以实际上本题是要求整个FENCE区域对原点所张开的总角度, 定义FENCE为一有向回路 那么每条边都是有向的。。如果按照边的方向对原点所张开的角度为顺时针。那么定义为正。逆时针为负。并且每输入一条边就把本边对原点张开的角度计算进去加到一个数里去 那么对于包含原点的区域。这个数应该为正负2 ; 对于不包含原点的区域,这个数在按边过程中的最大值-最小值就是这个区域对原点所张开的角度。 还有一种情况,那就是区域不包含原点,但是总共张开的角度大于2 ,那么只要计算为2 即可因为原点对任何区域最多只能张开2 。 数据结构: 用一个POINT数组来储存点的位置 时空分析: 如果有N个点 那么空间复杂度为O(N) 时间复杂度为O(N) 源程序: fence.cpp

    0
    20
    10.7MB
    2009-05-23
    9
  • tibet-html解析器

    html解析器,非常好用,文档齐全 html解析器,非常好用,文档齐全 html解析器,非常好用,文档齐全

    0
    19
    1.36MB
    2009-05-21
    0
  • PDF2Word14_keygen

    PDF2Word 能帮助您将 PDF 文件转换为 RTF 格 │ │式以便放到 Word 中编辑。软件支持转换特定页│ │码的 PDF 文件,输出页面缩放,自定义字符间 │ │距,利用文本框固定文本,合并邻近的文本块,│ │删除 PDF 文件中的图形或图片;并可以同时转 │ │换多个文件。 │ │软件的独立性很强,即使您的系统中没有安装 │ │Acrobat Reader 或 Acrobat,也能正常转换文 │ │件。

    0
    10
    56KB
    2009-04-12
    9
  • 正则表达式使用详解及使用实例

    简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。此外,象JavaScript这种客户端的脚本语言也提供了对正则表达式的支持。由此可见,正则表达式已经超出了某种语言或某个系统的局限,成为人们广为接受的概念和功能。   正则表达式可以让用户通过使用一系列的特殊字符构建匹配模式,然后把匹配模式与数据文件、程序输入以及WEB页面的表单输入等目标对象进行比较,根据比较对象中是否包含匹配模式,执行相应的程序。   举例来说,正则表达式的一个最为普遍的应用就是用于验证用户在线输入的邮件地址的格式是否正确。如果通过正则表达式验证用户邮件地址的格式正确,用户所填写的表单信息将会被正常处理;反之,如果用户输入的邮件地址与正则表达的模式不匹配,将会弹出提示信息,要求用户重新输入正确的邮件地址。由此可见正则表达式在WEB应用的逻辑判断中具有举足轻重的作用。

    0
    19
    9KB
    2009-04-10
    9
  • 自地球诞生以来最全的C语言笔试面试题!将近有250页的word文档!

    自地球诞生以来最全的C语言笔试面试题!将近有250页的word文档!

    0
    11
    721KB
    2009-04-10
    5
  • 编辑距离问题_有详细的分析与伪码

    设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括 (1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。 将字符串A变换为字符串B所用的最少字符操作数称为字符串A到B的编辑距离,记为d(A,B)。试设计一个有效算法,对任给的2个字符串A和B,计算出它们的编辑距离d(A,B)。

    5
    37
    51KB
    2009-04-07
    5
  • 算法分析-漂亮打印(动态规划)

    n个单词,长度为l1(字母)、l2、l3…,打印在宽度为m(字母)的纸上,要求除最后一行外每行最后余下的空格数的立方和最小。用动态规划算法实现

    0
    217
    5KB
    2009-04-05
    10
  • verilog HDL经典实例135例

    《Verilog HDL程序设计教程》程序例子,带说明。 【例 3.1】4 位全加器 【例 3.2】4 位计数器 【例 3.3】4 位全加器的仿真程序 【例 3.4】4 位计数器的仿真程序 【例 3.5】“与-或-非”门电路 【例 5.1】用 case语句描述的 4 选 1 数据选择器 【例 5.2】同步置数、同步清零的计数器 【例 5.4】用 initial过程语句对测试变量 A、B、C 赋值 【例 5.5】用 begin-end 串行块产生信号波形 【例 5.6】用 fork-join 并行块产生信号波形 【例 5.7】持续赋值方式定义的 2 选 1 多路选择器 【例 5.8】阻塞赋值方式定义的 2 选 1 多路选择器 【例 5.9】非阻塞赋值 【例 5.10】阻塞赋值 【例 5.11】模为 60 的 BCD码加法计数器 【例 5.12】BCD码—七段数码管显示译码器 【例 5.13】用 casez 描述的数据选择器 【例 5.15】用 for 语句描述的七人投票表决器 【例 5.16】用 for 语句实现 2 个 8 位数相乘 【例 5.17】用 repeat 实现 8 位二进制数的乘法 【例 5.18】同一循环的不同实现方式 【例 5.19】使用了`include 语句的 16 位加法器 【例 5.20】条件编译举例 【例 6.1】加法计数器中的进程 【例 6.2】任务举例 【例 6.3】测试程序 【例 6.4】函数 【例 6.5】用函数和 case语句描述的编码器(不含优先顺序) 【例 6.6】阶乘运算函数 【例 6.7】测试程序 【例 6.8】顺序执行模块 1 【例 6.9】顺序执行模块 2 【例 6.10】并行执行模块 1 【例 6.11】并行执行模块 2 【例 7.1】调用门元件实现的 4 选 1 MUX 【例 7.2】用 case语句描述的 4 选 1 MUX 【例 7.3】行为描述方式实现的 4 位计数器 【例 7.4】数据流方式描述的 4 选 1 MUX 【例 7.5】用条件运算符描述的 4 选 1 MUX 【例 7.6】门级结构描述的 2 选 1MUX 【例 7.7】行为描述的 2 选 1MUX 【例 7.8】数据流描述的 2 选 1MUX 【例 7.9】调用门元件实现的 1 位半加器 【例 7.10】数据流方式描述的 1 位半加器 【例 7.11】采用行为描述的 1 位半加器 【例 7.12】采用行为描述的 1 位半加器 【例 7.13】调用门元件实现的 1 位全加器 【例 7.14】数据流描述的 1 位全加器 【例 7.15】1 位全加器 【例 7.16】行为描述的 1 位全加器 【例 7.17】混合描述的 1 位全加器 【例 7.18】结构描述的 4 位级连全加器 【例 7.19】数据流描述的 4 位全加器 【例 7.20】行为描述的 4 位全加器 【例 8.1】$time 与$realtime 的区别 【例 8.2】$random 函数的使用 【例 8.3】1 位全加器进位输出 UDP 元件 【例 8.4】包含 x 态输入的 1 位全加器进位输出 UDP 元件 【例 8.5】用简缩符“?”表述的 1 位全加器进位输出 UDP 元件 【例 8.6】3 选 1 多路选择器 UDP 元件 【例 8.7】电平敏感的 1 位数据锁存器 UDP 元件 【例 8.8】上升沿触发的 D 触发器 UDP 元件 【例 8.9】带异步置 1 和异步清零的上升沿触发的 D 触发器 UDP 元件 【例 8.12】延迟定义块举例 【例 8.13】激励波形的描述 【例 8.15】用 always 过程块产生两个时钟信号 【例 8.17】存储器在仿真程序中的应用 【例 8.18】8 位乘法器的仿真程序 【例 8.19】8 位加法器的仿真程序 【例 8.20】2 选 1 多路选择器的仿真 【例 8.21】8 位计数器的仿真 【例 9.1】基本门电路的几种描述方法 【例 9.2】用 bufif1 关键字描述的三态门 【例 9.3】用 assign 语句描述的三态门 【例 9.4】三态双向驱动器 【例 9.5】三态双向驱动器 【例 9.6】3-8 译码器 【例 9.7】8-3 优先编码器 【例 9.8】用函数定义的 8-3 优先编码器 【例 9.9】七段数码管译码器 【例 9.10】奇偶校验位产生器 【例 9.11】用 if-else语句描述的 4 选 1 MUX 【例 9.12】用 case语句描述的 4 选 1 MUX 【例 9.13】用组合电路实现的 ROM 【例 9.14】基本 D 触发器 【例 9.15】带异步清 0、异步置 1 的 D 触发器 【例 9.16】带同步清 0、同步置 1 的 D 触发器 【例 9.17】带异步清 0、异步置 1 的 JK触发器 【例 9.18】电平敏感的 1 位数据锁存器 【例 9.19】带置位和复位端的 1 位数据锁存器 【例 9.20】8 位数据锁存器 【例 9.21】8 位数据寄存器 【例 9.22】8 位移位寄存器 【例 9.23】可变模加法/减法计数器 【例 9.24】4 位 Johnson 计数器(异步复位) 【例 9.25】256×8 RAM 模块 【例 9.26】256×16 RAM 块 【例 9.27】4 位串并转换器 【例 9.28】用函数实现简单的处理器 【例 9.29】微处理器的测试代码 【例 9.30】乘累加器(MAC)代码 【例 9.31】乘累加器的测试代码 【例 10.1】非流水线方式 8 位全加器 【例 10.2】4 级流水方式的 8 位全加器 【例 10.3】两个加法器和一个选择器的实现方式 【例 10.4】两个选择器和一个加法器的实现方式 【例 10.5】状态机设计的例子 【例 10.6】自动转换量程频率计控制器 【例 10.7】8 位全加器 【例 10.8】8 位寄存器 【例 10.9】累加器顶层连接文本描述 【例 10.10】用`include 描述的累加器 【例 10.11】阻塞赋值方式描述的移位寄存器 1 【例 10.12】阻塞赋值方式描述的移位寄存器 2 【例 10.13】阻塞赋值方式描述的移位寄存器 3 【例 10.14】非阻塞赋值方式描述的移位寄存器 【例 10.15】长帧同步时钟的产生 【例 10.16】引入了 D 触发器的长帧同步时钟的产生 【例 11.1】数字跑表 【例 11.2】4 位数字频率计控制模块 【例 11.3】4 位数字频率计计数子模块 【例 11.4】频率计锁存器模块 【例 11.5】交通灯控制器 【例 11.6】“梁祝”乐曲演奏电路 【例 11.7】自动售饮料机 【例 11.8】多功能数字钟 【例 11.9】电话计费器程序 【例 12.1】8 位级连加法器 【例 12.2】8 位并行加法器 【例 12.3】8 位超前进位加法器 【例 12.4】8 位并行乘法器 【例 12.6】8 位加法树乘法器 【例 12.7】11 阶 FIR数字滤波器 【例 12.8】16 位高速数字相关器 【例 12.9】(7,4)线性分组码编码器 【例 12.10】(7,4)线性分组码译码器 【例 12.11】(7,4)循环码编码器 【例 12.12】(7,4)循环码纠错译码器 【例 12.13】CRC 编码

    4
    55
    155KB
    2009-04-04
    6
  • 《科技信息检索》课件_第二部分

    网上下载的,很实用,包括9章,是2007年的新版。 7、特种文献检索 8、工程索引及检索 9、外文文献检索

    0
    46
    18.95MB
    2009-03-20
    3
  • 《科技信息检索》课件_第一部分

    网上下载的,很实用,包括9章,是2007年的新版。 7、特种文献检索 8、工程索引及检索 9、外文文献检索

    0
    46
    8.49MB
    2009-03-20
    4
  • 分享宗师

    成功上传21个资源即可获取
关注 私信
上传资源赚积分or赚钱