09 2012 档案

摘要:这段时间来,感觉真的累了,忙完一天的事,就逛逛别人的博客补充自己的知识。 这个中秋又在外面度过了,来个这个城市两年多了,想想当初刚来的时候,没有认识的朋友,吃的也不习惯,每天都是盯着白饭吃,感觉好孤独。后面认识很多新的朋友,也习惯了这里的口味,很感谢在这里的每个朋友们。 这个国庆只放两天假,加上暑假也没回家,今年将是在家里呆最少的一年了,很想念家里的每一个人,还好老弟老姐们都回家了,不然家里那三个老头就自己过中秋了。 大三了,早就该为自己的以后想想,给自己定了这学期的任务了,希望在这个学期能够顺利的完成自己的任务。 昨晚见了团队的一批新的成员,看到他们学习的样子,想起自己当初入这个... 阅读全文
posted @ 2012-09-30 01:39 Wheat″ 阅读(179) 评论(1) 推荐(1)
摘要: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″ 阅读(235) 评论(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″ 阅读(171) 评论(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″ 阅读(192) 评论(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)
摘要:直接按照题意模拟就行了View Code 1 //Accepted 3189 0MS 244K 502 B C++ 2 #include <stdio.h> 3 #include <string.h> 4 int flag[1001]; 5 int ans[101]; 6 7 void init() 8 { 9 memset(flag,0,sizeof(flag));10 memset(ans,0,sizeof(ans));11 for(int i=1;i<1001;i++)12 {13 int j = 1;14... 阅读全文
posted @ 2012-09-21 19:42 Wheat″ 阅读(257) 评论(0) 推荐(0)
摘要:通过素数筛选,加输入时判断,效率不是很高View Code 1 //Accepted 212K 204MS C++ 967B 2 #include <cstdio> 3 #include <memory.h> 4 #include <algorithm> 5 using namespace std; 6 const int MAXN = 5001, MAXM = 20001,MAXPRIME=2262; 7 bool is_prime[MAXM]; 8 int prime[MAXPRIME]; 9 int ans[MAXN];10 void init_pri 阅读全文
posted @ 2012-09-20 17:56 Wheat″ 阅读(449) 评论(0) 推荐(0)
摘要:很明显的字典树查询了,主要是对输入做处理,多次WA后才发现忘了标志单词的前缀的问题了,例如存入hello,后面查找hell是不能查到的,忘了对这个的处理,看到得多练习了。View Code 1 //Accepted 1075 281MS 71020K 1500 B C++ 2 #include <iostream> 3 #include <cstring> 4 #include <cstdio> 5 #include <string> 6 #define M 26 7 using namespace std; 8 int ii; 9 struc. 阅读全文
posted @ 2012-09-19 22:16 Wheat″ 阅读(204) 评论(0) 推荐(0)
摘要:根据题意构图,简单的拓扑排序,输出排序的结果View Code 1 //Accepted 4308K 47MS G++ 2 #include "stdio.h" 3 #include "string.h" 4 #define M 1000 5 int g[M][M]; 6 int q[M],p[M]; 7 bool useif[M]; 8 int top=0,n,m; 9 void topo()10 {11 int i;12 bool use = false;13 top=0;14 memset(useif,0,sizeof(useif));... 阅读全文
posted @ 2012-09-18 21:21 Wheat″ 阅读(381) 评论(1) 推荐(0)
摘要:View Code 1 //Accepted 2665 703MS 16388K 2972 B G++ 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 mid() { 11 return... 阅读全文
posted @ 2012-09-18 19:49 Wheat″ 阅读(149) 评论(0) 推荐(0)
摘要:数据有点水了,n*m*m的代码都过View Code 1 //Accepted 2571 31MS 292K 1458 B G++ 2 #include <stdio.h> 3 #include <string.h> 4 #define inf 0x7fffffff 5 int n,m,dp[21][1001]; 6 inline int max(int a,int b) { return a > b ? a : b ; } 7 void solve() 8 { 9 for(int i = 1; i <= n; ++i)10 fo... 阅读全文
posted @ 2012-09-18 18:56 Wheat″ 阅读(115) 评论(0) 推荐(0)
摘要:根据题目写出取模运算,跟着公式做记忆化递归View Code 1 //Accepted 392K 188MS G++ 908B 2 //Accepted 400K 172MS G++ 3 #include <stdio.h> 4 #include <math.h> 5 #include <string.h> 6 7 int a,b,c,d,e,f,g,h,i; 8 int ans[1001]; 9 int mod(int a,int b)10 {11 int r;12 for(r=0;r<=b-1;r++)13 if... 阅读全文
posted @ 2012-09-18 16:07 Wheat″ 阅读(251) 评论(0) 推荐(0)
摘要:根据题目意思来就行了View Code 1 //Accepted 392K 0MS G++ 1292B 2 #include <stdio.h> 3 int main(void) 4 { 5 int a[9]; 6 int sum; 7 while(scanf("%d",&a[8])==1) 8 { 9 sum = a[8];10 for(int i=7;i>=0;--i)11 {12 scanf("%d",&a[i]);13 sum += ... 阅读全文
posted @ 2012-09-16 15:18 Wheat″ 阅读(193) 评论(0) 推荐(0)
摘要:直接搜索就行了View Code 1 //Accepted 2181 0MS 216K 802 B G++ 2 #include <stdio.h> 3 #include <string.h> 4 5 int map[21][21]; 6 int useif[21]; 7 int ans[21]; 8 int cases; 9 int m;10 void solve(int n,int d)11 {12 if(d > 20)13 {14 if(map[m][ans[20]] == 0)15 return ... 阅读全文
posted @ 2012-09-16 11:10 Wheat″ 阅读(172) 评论(0) 推荐(0)
摘要:题目意思:在给定的单词中 ,求一个以b开头的单词 转化到 一个以m结束的单词,中间转化过程要首尾对应,例如样例中的"big-got-them"便是一个转化过程,可以转化输出Yes. ,否则输出No. 。我的解题方法:把26个小写字母当成26个顶点。每个单词都有一个开始的字母和一个结束的字母,构造开始字母到结束字母为有向边路径为1通过folyd每个顶点到各个顶点的最短路径。最后判断 'b' 能否到达 'm' 即可代码:View Code 1 //Accepted 1181 0MS 212K 1277 B G++ 2 #include <s 阅读全文
posted @ 2012-09-09 20:40 Wheat″ 阅读(195) 评论(0) 推荐(0)
摘要:View Code 1 //Accepted 1248 93MS 2332K 512 B Java 2 import java.util.Scanner; 3 4 public class Main { 5 6 public static void main(String[] args) { 7 8 Scanner sc = new Scanner(System.in); 9 int b[] = {150,200,350};10 int ans[] = new int [10001]... 阅读全文
posted @ 2012-09-07 17:29 Wheat″ 阅读(183) 评论(0) 推荐(0)
摘要:View Code 1 //Accepted 3342 31MS 260K 1002 B G++ 2 #include <stdio.h> 3 #include <string.h> 4 #define M 110 5 int g[M][M]; 6 int q[M]; 7 bool useif[M]; 8 int n,m; 9 int topo()10 {11 int i,j,k,t;12 memset(useif,0,sizeof(useif));13 t = 0;14 for(i=1;i<=n;i++)15 {16 ... 阅读全文
posted @ 2012-09-07 17:18 Wheat″ 阅读(180) 评论(0) 推荐(0)