摘要: View Code 1 /*给出三维空间中的n个顶点,求解由这n个顶点构成的凸包表面的多边形个数. 2 增量法求解:首先任选4个点形成的一个四面体,然后每次新加一个点,分两种情况: 3 1> 在凸包内,则可以跳过 4 2> 在凸包外,找到从这个点可以"看见"的面,删除这些面, 5 然后对于一边没有面的线段,和新加的这个点新建一个面,至于这个点可以看见的面, 6 就是求出这个面的方程(可以直接求法向量). 7 下面是三维凸包的模板。。有了这个模板应该对付三维凸包的题就没问题了吧。。*/ 8 #include<iostream> 9 ... 阅读全文
posted @ 2012-09-28 17:21 Wheat″ 阅读(554) 评论(0) 推荐(0)
摘要: 题目大意:求三维凸包的表面多边形数。模板题View Code 1 /*给出三维空间中的n个顶点,求解由这n个顶点构成的凸包表面的多边形个数. 2 增量法求解:首先任选4个点形成的一个四面体,然后每次新加一个点,分两种情况: 3 1> 在凸包内,则可以跳过 4 2> 在凸包外,找到从这个点可以"看见"的面,删除这些面, 5 然后对于一边没有面的线段,和新加的这个点新建一个面,至于这个点可以看见的面, 6 就是求出这个面的方程(可以直接求法向量). 7 下面是三维凸包的模板。。有了这个模板应该对付三维凸包的题就没问题了吧。。*/ 8 /... 阅读全文
posted @ 2012-09-28 17:08 Wheat″ 阅读(480) 评论(0) 推荐(0)
摘要: 题目意思:求三维凸包的表面积,模板题View Code 1 /*给出三维空间中的n个顶点,求解由这n个顶点构成的凸包表面的多边形个数. 2 增量法求解:首先任选4个点形成的一个四面体,然后每次新加一个点,分两种情况: 3 1> 在凸包内,则可以跳过 4 2> 在凸包外,找到从这个点可以"看见"的面,删除这些面, 5 然后对于一边没有面的线段,和新加的这个点新建一个面,至于这个点可以看见的面, 6 就是求出这个面的方程(可以直接求法向量). 7 下面是三维凸包的模板。。有了这个模板应该对付三维凸包的题就没问题了吧。。*/ 8 //Ac... 阅读全文
posted @ 2012-09-28 17:02 Wheat″ 阅读(265) 评论(0) 推荐(0)
摘要: 题目大意:给定一个三维空间,有些点能走有些点不能走,每次只能上下,左右,前后六个方向走,给定起始坐标和终点坐标,求从起点到终点最短的路径。注意:图是按z,y,x给出的,所以在获取起点和终点时也是按z,y,x获取View Code 1 //Accepted 192K 16MS C++ 1395B 2 #include <cstring> 3 #include <cstdio> 4 #include <queue> 5 using namespace std; 6 #define MAX 15 7 struct node{ 8 int x,y,z,d; 9 }s 阅读全文
posted @ 2012-09-26 14:41 Wheat″ 阅读(175) 评论(0) 推荐(0)
摘要: 题目大意:给定两个字符串,有两种操作1: 把第a(a==1 || a==2)个串第i个位置得字符改为c(输入的字符)2: 求从第i个字符起接下来连续相同字符的个数解题方法:对于两个字符串,对应第i个位置得字符相同标1,不同标0,分别加入数组数组中查询的话从第i个位置起到两个串最大长度的位置,通过二分查询结果。如果连续相同的话,区间和将等于区间的长度。树状数组代码:View Code 1 //Accepted 4339 3218MS 10008K 1651 B G++ 2 #include <stdio.h> 3 #include <string.h> ... 阅读全文
posted @ 2012-09-25 19:17 Wheat″ 阅读(152) 评论(0) 推荐(1)
摘要: 看了大神的才懂的:http://blog.csdn.net/acm_cxlove/article/details/7853916#comments题目:这是一个经典问题,有n个海盗,分m块金子,其中他们会按一定的顺序提出自己的分配方案,如果50%以上的人赞成,则方案通过,开始分金子,如果不通过,则把提出方案的扔到海里,下一个人继续。http://acm.hdu.edu.cn/showproblem.php?pid=1538首先我们讲一下海盗分金决策的三个标准:保命,拿更多的金子,杀人,优先级是递减的。同时分为两个状态稳定状态和不稳定状态:如果当n和m的组合使得最先决策的人(编号为n)不会被丢下 阅读全文
posted @ 2012-09-24 17:20 Wheat″ 阅读(230) 评论(0) 推荐(0)
摘要: 求区间比K小或等于K的元素个数View Code 1 //Accepted 4417 593MS 16388K 3445 B G++ asen11 2 #include <stdio.h> 3 #include <algorithm> 4 using namespace std; 5 #define M 100001 6 #define LL(x) ((x)<<1) 7 #define RR(x) ((x)<<1|1) 8 struct Seg_Tree{ 9 int left,right; 10 int ... 阅读全文
posted @ 2012-09-23 19:54 Wheat″ 阅读(330) 评论(0) 推荐(0)
摘要: 枚举中间点,向四个方向搜索十字架,注意十字架旁边不能为#View Code 1 //Accepted 4414 0MS 244K 1157 B C++ 2 #include <stdio.h> 3 #include <string.h> 4 int n; 5 char map[51][51]; 6 7 int cmp(int x,int y) 8 { 9 if( x >= 0 && y >=0 && x < n && y < n && map[x][y]=='#')1 阅读全文
posted @ 2012-09-23 19:52 Wheat″ 阅读(170) 评论(0) 推荐(1)
摘要: 按题意模拟下打出前几项可以看得出是肥波纳妾数列模拟代码:View Code #include <stdio.h>int sum;int b[45];int n;void solve(int d){ if(d > n) { sum++; return ; } b[d] = 0; solve(d+1); if(b[d-1]==0) { b[d] = 1; solve(d+1); }}int main(void){ sum = 0; int t; scanf("%d",&t); ... 阅读全文
posted @ 2012-09-22 15:25 Wheat″ 阅读(191) 评论(0) 推荐(0)
摘要: 大概意思:1在这个集合内集合内的元素的2 、3 、 5 、 7 倍 ,也是这个集合内的数这样就有了前面:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ...给你一个数x,输出集合中第x项的值注意"st", "nd", "rd", or "th" 这些的处理View Code 1 #include <stdio.h> 2 3 int minn(int a,int b,int c,int d) 4 { 5 if( 阅读全文
posted @ 2012-09-21 20:59 Wheat″ 阅读(237) 评论(0) 推荐(0)