04 2014 档案

摘要:看到网上除了射线法,很长一段代码之外,看到了一个很简单的算法解决这个问题,特意转了过来/* 这个算法是源自《计算机图形学基础教程》(孙家广,清华大学出版社),在该书 的48-49页,名字可称为"改进的弧长法"。该算法只需O(1)的附加空间,时间复杂度为O (n),但系数很小;最大的优点是具有很高的精度,只需做乘法和减法,若针对整数坐标则 完全没有精度问题。而且实现起来也非常简单,比转角法和射线法都要好写且不易出错。 首先从该收中摘抄一段弧长法的介绍:"弧长法要求多边形是有向多边形,一般规 定沿多边形的正向,边的左侧为多边形的内侧域。以被测点为圆心作单位圆,将全部有 阅读全文
posted @ 2014-04-10 20:22 keyboard3 阅读(472) 评论(0) 推荐(0)
摘要:事实证明还是,题目拿到手之后,还是还是好好动手划一下比较好,不然直接想打哪!打到哪!很容易乱掉的。将数字倒着弄成字符串比较好处理。#include#include#define MAX 505char str[MAX][200];int ch1(char *a,char *b){ int l1,len,flag,coun=0,l2; int i=0,j=0; l1=strlen(a); l2=strlen(b); if(l1>l2) return 1; else if(l1=0;i--) { if(a[i]>b[i]... 阅读全文
posted @ 2014-04-08 09:09 keyboard3 阅读(273) 评论(0) 推荐(0)
摘要:好开心,手动自己按照字典树的思想用c写了一个优化后的trie字典树,就是用链表来代替26个大小的字符数组。完全按照自己按照自己的想法打的,没有参考如何被人的代码。调试了一天,居然最后错在一个小问题上,郁闷啊!!!最后终于调试出来了!!一次提交就ac了!!开心溢于言表啊!!!!!!/*trie树:插入: 插入一段字符串: 每个字符作为树的一层(同一层的节点通过兄弟节点项连),每个节点如果有后继节点的话,就把最大的后继放到其后面。 如果字符串结束,就在该节点处,connt++;然后用一个字符串指针指向实际匹配的字符串的地址。查询: 给定一个字符串,通过字符串... 阅读全文
posted @ 2014-04-06 22:01 keyboard3 阅读(200) 评论(0) 推荐(0)
摘要:例题代码是c++,看起来实在不习惯。还是用我的c写舒服。题意:突击队 你有n个部下,每个部下需要完成一项任务。第i个部下需要你话b[i]分钟交代任务然后他会立刻独立地、无间断地执行j[i]分钟后完成任务。你需要选择交代任务的顺序,使得所有任务今早执行完毕(即最后一个执行完的任务尽早结束)。注意,不能同时给两个部下交代任务,但部下们可以同时执行他们各自的任务。#include#include#define max(a,b) (a)>(b)? (a):(b);struct Node{ int b,j;}J[1005];int cmp(const void*a,const void*b)... 阅读全文
posted @ 2014-04-06 11:25 keyboard3 阅读(130) 评论(0) 推荐(0)
摘要:最近再开刘汝佳的算法竞赛入门经典,用它来练题。1.1思维的体操题意: 勇者斗恶龙 你的王国立有一条n个头的恶龙,你希望雇一些骑士把它杀死(即砍掉所有头)。村里有m个骑士可以雇佣,一个能力值为x的骑士可以砍掉一个直径不超过x的头,且需要支付x个金币。如何雇佣骑士才能砍掉恶龙的所有头,且需要支付的金币最少?注意,一个骑士只能砍一个头(且不能被雇佣两次)贪心排序:#include#include/*因为用到了sort*/using namespace std;const int maxn=20000+5;int A[maxn],B[maxn];int main(void){ int n,... 阅读全文
posted @ 2014-04-06 10:44 keyboard3 阅读(158) 评论(0) 推荐(0)
摘要:蛋都疼了,高了半天,Output Limit Exceeded原来是输入的问题,我靠!!以后还是用输入输出c++好,这尼玛!!郁闷!!!!!#include#include#includeusing namespace std;int main(){ int CA; cin>>CA; while(CA--){ char str[106],*start; int t,n,i,j,len,flag,h; start=&str[4]; scanf("%s %d",start,&n); le... 阅读全文
posted @ 2014-04-04 16:32 keyboard3 阅读(282) 评论(0) 推荐(0)
摘要:01背包加变形 动态规划的时候就犯浑了,每个状态都要记录的,我却只记录了当前状态的!!#include#includeint max(int a,int b){ return (a) > (b) ? (a) : (b);}int a[12],b[12],M,dp[12][100010];int main(){ int N,i,j,k,ma; while(scanf("%d",&M)!=EOF) { scanf("%d",&N); ma=0; for(i=1;i=k*b[i]) dp[i][j]... 阅读全文
posted @ 2014-04-02 18:17 keyboard3 阅读(208) 评论(0) 推荐(0)