2013年8月12日

8月10号的练习:ZOJ 3203&&POJ 3974&&HDU 1394&&HDU 3400&&HDU 2152

摘要: Light BulbZOJ 3203又是一道数学题:(三分法) 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 double H,h,D,l,r,mid,mmid; 8 int n; 9 scanf("%d",&n);10 while(n--)11 {12 scanf("%lf%lf%lf",&H,&h,&D);13 l=(H-h)*D/H;14 r=D;mid=0;m... 阅读全文
posted @ 2013-08-12 00:14 ~~碾压机 阅读(206) 评论(0) 推荐(0) 编辑
2013年8月9日

8月8号的树状数组:(位运算)

摘要: 摘自:http://www.cnblogs.com/911/archive/2008/05/20/1203477.html位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。C语言提供的位运算符列表:运算符含义描述&按位与如果两个相应的二进制位都为1,则该位的结果值为1,否则为0|按位或两个相应的二进制位中只要有一个为1,该位的结果值为1(如果两个相应的二进制都为0,则该位的结果值为0,否则为1)^按位异或若参加运算的两个二进制位值相同则 阅读全文
posted @ 2013-08-09 22:23 ~~碾压机 阅读(285) 评论(0) 推荐(0) 编辑

8月7号的练习:HDU 1069&&POJ 1636&&HDU 1031&&HDU 1051&&HDU 1551

摘要: Monkey and Banana HDU 1069这个题目还是比较好理解的:题意:有n(n 2 #include 3 #include 4 using namespace std; 5 struct line 6 { 7 int x; 8 int y; 9 int z;10 }a[200];11 bool comp1(line i,line j)12 {13 if(i.x!=j.x)14 return i.xa[j].x&&a[i].y>a[j].y)41 temp=max(te... 阅读全文
posted @ 2013-08-09 10:02 ~~碾压机 阅读(239) 评论(3) 推荐(0) 编辑
2013年8月8日

8月8号的线段树:HDU 1754&&POJ 3264&&HDU1166

摘要: 很明显,没有A一道题,题目意思很容易懂,但是就是shit的超时!!之后就崩溃了。晚上好像弄懂了线段树,先上题目: I Hate ItHDU 1754要用线段树才不会超时:(计算机运行数目达到10^8就要1S了!!而一般题目就是那么2000MS~5000MS) 1 #include 2 #include 3 #include 4 using namespace std; 5 int a[200005]; 6 struct line 7 { 8 int left; 9 int right;10 int max1;11 }node[... 阅读全文
posted @ 2013-08-08 22:00 ~~碾压机 阅读(178) 评论(0) 推荐(0) 编辑
2013年8月7日

8月6号的题目:HDU 1003&& POJ 1050&&HDU 1800&&HDU 2036&& POJ 1088(记忆化搜索)

摘要: Max SumHDU 1003一个求最大连续子序列:(有模板吧) 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 int n,m,a[100005],i,j,k,l,r,s,MAX; 8 scanf("%d",&n); 9 for(i=1;iMAX)22 {23 l=j;24 r=k;25 MAX=s;26 ... 阅读全文
posted @ 2013-08-07 19:39 ~~碾压机 阅读(160) 评论(0) 推荐(0) 编辑

HDU 1052

摘要: Tian Ji -- The Horse Racing HDU 1052顿时吓尿了:结题思路:1.若田忌最慢的马可以战胜齐王最慢的马,那么就让它战胜那匹慢马,胜利场次加1。(田忌最慢马 > 齐王最慢马)2.若田忌最慢的马不能战胜齐王最慢的马,那么它更加不能战胜其他的马,那就让它输,而且输给齐王最快马,失败场次加1。(田忌最慢马 2 #include 3 #include 4 #include 5 using namespace std; 6 int a[1005],b[1005]; 7 int main() 8 { 9 int i,n,... 阅读全文
posted @ 2013-08-07 15:14 ~~碾压机 阅读(272) 评论(0) 推荐(0) 编辑
2013年8月6日

背包问题九讲:

摘要: 一些基本的性质与公式:P01: 01背包问题题目有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}。这个方程非常重要,基本上所有跟背包相关的问题的方程都是由它衍生出来的。所以有必要将它详细解释一下:“将前i件物品放入容量为v的 阅读全文
posted @ 2013-08-06 15:04 ~~碾压机 阅读(186) 评论(0) 推荐(0) 编辑

一个人的旅行 HDU 2066 &&HDU Today HDU 2112

摘要: 一个人的旅行 HDU 2066迪杰斯特拉:Dijkstra: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 int inf=1000000;//以后如果结果输出的是(负数或很大的整数),可能是(这个开大了或开小了) 7 int a[1005][1005],w[1005]; 8 int main() 9 {10 int t,s,d,n,i,j,p,min1,a1,a2,a3;11 while(scanf("%d%d%d",&t,&s,&d)!=EOF)12 {1 阅读全文
posted @ 2013-08-06 14:22 ~~碾压机 阅读(253) 评论(0) 推荐(0) 编辑
2013年8月4日

8月3号的LCS,LIS,LICS:Longest Ordered Subsequence&&Common Subsequence&&Greatest Common Increasing Subsequence

摘要: Longest Ordered Subsequence HDU2533求最长递增子序列的模板:Slyar:属于简单的经典的DP,求最长上升子序列(LIS)。先研究了O(n^2)的思路。令A[i]表示输入第i个元素,D[i]表示从A[1]到A[i]中以A[i]结尾的最长子序列长度。对于任意的0 = A[i] ,则D[i] = 1 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 int n,i,j,MAX,dp[2005],a[2005]; 8 while(scanf("%d" 阅读全文
posted @ 2013-08-04 16:28 ~~碾压机 阅读(204) 评论(0) 推荐(0) 编辑
2013年8月3日

那些操蛋的搜索题目:逃离迷宫&&哈密顿绕行世界问题

摘要: 哈密顿绕行世界问题HDU 2181坐标类型搜索 :这种类型的搜索题目通常来说简单的比较简单,复杂的通常在边界的处理和情况的讨论方面会比较复杂,分析这类问题,我们首先要抓住题目的意思,看具体是怎么建立坐标系(特别重要),然后仔细分析到搜索的每一个阶段是如何通过条件转移到下一个阶段的。确定每一次递归(对于DFS)的回溯和深入条件,对于BFS,要注意每一次入队的条件同时注意判重。要牢牢把握目标状态是一个什么状态,在什么时候结束搜索。还有,DFS过程的参数如何设定,是带参数还是不带参数,带的话各个参数一定要保证能完全的表示一个状态,不会出现一个状态对应多个参数,而这一点... 阅读全文
posted @ 2013-08-03 16:20 ~~碾压机 阅读(506) 评论(0) 推荐(0) 编辑