- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 hdoj 1800 Flying to the Mars (字符串哈希函数)
题目大意:输入N(N思路:对每个level(字符串)进行哈希, 存入哈希表,线性探测再散列解决冲突。附常用字符串哈希函数:int ELFhash(char *key){ unsigned long h = 0; unsigned long g; while( *key ) { h =( h> 24; h &= ~g; } return h;} // RS Hash Functionunsign
2010-07-17 18:13:00 903
原创 hdoj 1496 Equations (HASH)
<br />题目大意:方程 a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 <br /> a,b,c,d的范围为[-50,50] , x1,x2,x3,x4的范围为[-100,100].<br /> 现给出a,b,c,d,求x1,x2,x3,x4的解的个数.<br /> <br />思路:先求a*x1^2+b*x2^2 所有的值,保存于哈希表中。再查找-(c*x3^2+d*x4^2)是否保存于哈希表中。<br /> <br />问题是解决哈希表中的冲突<br />
2010-07-16 22:46:00 930 2
转载 关于负数求余(2个原则)
<br />a%b=c (b!=0)<br /><br /><br />1>余数c的符号同被除数a.<br />2>余数c的绝对值小于除数b,即 |c|<|b|.<br /> <br />如 (-10)%(-20)=-10<br /> (-10)%(20)=-10<br /> (10)%(-20)=10.
2010-07-16 21:23:00 2384
原创 hdoj 1010 Tempter of the Bone(深搜剪枝)
<br />题目大意:地图由"S""X""D""."组成,"X":wall ,".":block, 问是否能从S出发在第T秒钟刚好到达D。<br />思路:深搜,注意剪枝。<br /> 剪枝一:block数应该大于等于T,且大于需要走的最少步数。T应该大于等于最少步数。<br /> 剪枝二:奇偶剪枝。<br /> 即把地图看成<br /> 01010101<br /> 10101010<br /> 01010101<br /> 10101001<br />即从1走到1 或从0走到0 需要偶
2010-07-16 00:00:00 544
原创 POJ 1118+2606+2780 (求平面上同一条直线的最多点数)
<br />题目大意:给出平面上若干点,求属于同一条的直线的最多点数。<br /> <br />思路:分别求出其中一点与其它点的直线的斜率,进行排序,如果斜率相同则同一条直线。<br /> <br />注意:一开始写的时候分别把所有点与其他所有点的斜率都算了,结果超时。其实只要算与后面的所有点的斜率即可。(因为两点决定一直线,前面的两点决定的直线已经算过。)<br /> <br />很好的思想,又学习了。下面是2780的代码:<br /> <br />#include <iostream>using n
2010-07-13 01:47:00 2859 2
原创 POJ 2479 + POJ 2593(DP 最大双子序列 ^_^)
<br />题目大意:序列a[] ,求如下S.<br /><br /> <br />思路:自左向右和自右向左分别DP。<br /> 用left[i]表示序列1—i所能取最大和。<br /> 用right[i]表示序列n—i所能取到的最大和。<br />ans=max(left[i]+right[i+1]) (1<=i<=n-1)<br />或 max(right[i]+left[i-1]) (2<=i<=n)<br /> <br />思路很经典,学习了。<br />下面的程序
2010-07-05 13:40:00 1515
原创 (转)数组名和指针的区别
<br /><br />原文地址:http://blog.sina.com.cn/s/blog_49e22ee80100a6qa.html<br /> <br />魔幻数组名<br />请看程序(本文程序在WIN32平台下编译):<br />1. #include <iostream.h><br />2. int main(int argc, char* argv[])<br />3. {<br />4. char str[10];<br />5. char *pStr = str;<br />6.
2010-07-02 15:54:00 353
原创 hdoj 1238 (substring)
<br />暑假了 , 贴贴很久前的代码,今年暑假要AC。<br /> <br />#include <iostream>#include <string>using namespace std;void Reverse(char str[],int n){ int l; char temp; for(l=0;l<n/2;l++) { temp=str[l]; str[l]=str[n-l-1]; str[n-l-1]=temp; }}int m
2010-07-02 15:18:00 562
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人