![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM
文章平均质量分 78
Peak_Of_Science
一个爱好计算机技术的人
展开
-
线段判交
线段判交模版 #includeusing namespace std;inline int max(int a,int b){ return a>b? a:b;}inline int min(int a,int b){ return a<b? a:b;}struct point{ int x; int y;};struct line{ poin原创 2012-06-12 11:38:23 · 3169 阅读 · 0 评论 -
hdu 3008 Warcraft
背包问题dp[i][j] 为第i次攻击,还剩j魔法时,打掉boos的血量 #includeusing namespace std;struct skill{ int power; int cost;}s[101];int dp[110][110];inline int max(int a,int b){ return a>b?a:b;}原创 2012-06-12 11:45:41 · 2922 阅读 · 0 评论 -
hdu 1043 eight 八数码问题 bfs 和 A*
广搜+预处理 265MS 19436K内存用的很大#include#includeusing namespace std;const int MAX=362890;struct eight{ int map[9]; int zero; int id;// string route;}now,next;int d[4][2]={{原创 2012-06-12 11:46:27 · 2899 阅读 · 0 评论 -
hdu 1311 Relative Relatives
谈不上什么算法,直接贴代码: #include#include#includeusing namespace std;struct people{ int age; string name;}p[100];bool cmp(struct people a,struct people b){ if(a.age!=b.age) return a.age>b.ag原创 2012-06-13 11:51:20 · 2897 阅读 · 0 评论 -
hdu 2824 欧拉函数
纯欧拉函数,直接上代码: #includeusing namespace std;const int MAX=30;int e[MAX+1];void euler();int main(){ int a,b; __int64 ans; euler(); while(cin>>a>>b) { ans=0; for(int i=a;i<=b;i++)原创 2012-06-13 11:49:14 · 2964 阅读 · 0 评论 -
hdu 1068 Girls and Boys 二分匹配
很标准的二分匹配,用的是匈牙利算法。 #include#includeusing namespace std;int key[1000][1000],total,count; //count是所有点能找到增广路径的 total是总人数int ok[1000]; //记录右边所有的已经匹配的点,ok[i]=j右边第i个与左边第j个匹配int rightt[原创 2012-06-19 02:11:34 · 4214 阅读 · 0 评论 -
hdu 3911 Black And White 线段树
代码写得比较乱。 区间最长连续黑色:maxb区间最长连续白色:maxw 区间左端点颜色: lcolor区间右端点颜色:rcolor 左端点起最长连续数:lmax右端点起最长连续数:rmax 标记区间是否被更改过:flag #includeusing namespace std;struct tree{ int l原创 2012-06-19 02:07:29 · 6070 阅读 · 0 评论 -
hdu 1787 欧拉函数
类似于hdu 2588,具体请看另一篇博客。http://blog.csdn.net/arsenal1109389480/article/details/7658828 #includeusing namespace std;inline int eular(int x){ int ret=x; for(int i=2;i*i<=x;i++) { if(x%i==0)原创 2012-06-13 12:00:59 · 2812 阅读 · 0 评论 -
hdu 1098 Tell me the area
计算两圆相交面积 · d=sqrt((x1-x2)^2+(y1-y2)^2)· (1)如果r1+r2· 那么两圆相离,相交面积S=0· (2)如果r2-r1>=d· 那么半径小的圆内含半径大的圆,那么相交面积为小圆的面积S=pi*r1*r1· (3)两圆相交· 那么两圆相交,连接小圆的圆心与两个圆的交点,连接大圆的圆心和两个圆的交点。· 可以发现形成的图形被两个原创 2012-06-12 11:45:09 · 2678 阅读 · 0 评论 -
hdu 1542 Atlantis 二维线段树
网上这题好像没有用二维线段树做的,今天写一个试了试。 171MS,还行。用G++提交的,C++一直 #include#include#include#includeusing namespace std;map mx;map subx;map my;map suby;double tx[250];double ty[250];struct re原创 2012-06-12 11:44:42 · 2425 阅读 · 0 评论 -
hdu 1142 A Walk Through the Forest Dijkstra+记忆搜索
#includeusing namespace std;const int MAX=2147483647;int n,m;int t1,t2,len;int map[1005][1005];int ans[1005];int isvisit[1005];int answer;void Dijkstra();int DFS(int k);int main(){ w原创 2012-06-12 11:39:34 · 2456 阅读 · 0 评论 -
hdu 3172 Virtual Friends 字典树+并查集
代码还比较易懂,直接贴了 #include#includeusing namespace std;struct dictree{ struct dictree * child[52]; int num;}*root;int n;int ID;int father[200010];int rank[200010];void create(int k);int原创 2012-06-12 11:40:40 · 2439 阅读 · 0 评论 -
hdu 4099 Revenge of Fibonacci 2011 Asia Shanghai Regional Contest
求一个数是第几个斐波那契数的前缀,如果是多个斐波那契数的前缀,则输出最小的那一个。因为前缀最多40个,所以只需求出每个斐波那契数的前60位(防止进位误差),用字典树保存前缀。#include#includeusing namespace std;struct dictree{ struct dictree * child[10]; int ID;}*root;int原创 2012-06-12 11:46:56 · 2656 阅读 · 0 评论 -
z形矩阵(蛇形矩阵)
一个简单的模拟程序,上次比赛时到最后没时间做了。给出行数和列数,按照第一步向右或向下输出蛇形矩阵。 样例输入和输出: 先贴一个简单的,行数和列数相等的: #include#includeusing namespace std;int N;int dir;int map[100][100];int ID;int main(){ char原创 2012-06-12 12:02:44 · 2576 阅读 · 0 评论 -
计算多边形面积
自己写了个模版,直接贴代码了。 #include#includeusing namespace std;int main(){ int n; double fx,fy; double tx,ty; double nx,ny; double area; while(cin>>n,n) { area=0; cin>>fx>>fy; tx=fx;原创 2012-06-12 11:36:56 · 4098 阅读 · 0 评论 -
hdu 1115 Lifting the Stone 密度均匀多边形重心
利用求多边形面积的方法把多边形分成多个三角形,算出每个小三角形的重心,再用质点的重心求法 求出多边形重心。 #include#includeusing namespace std;int main(){ int n; double x0,y0; double x1,y1,x2,y2; double x,y; double area,totalarea; dou原创 2012-06-12 11:37:25 · 4658 阅读 · 0 评论 -
hdu 2059 龟兔赛跑
动态规划dp[i] 表示从起点到第i个充电站所需要的最短时间; ( 终点也算一个站,只是不用再往下走了) #includeusing namespace std;double L;double N,C,T;double VR,VT1,VT2;double station[105];double dp[105];int main(){ double R原创 2012-06-12 11:38:48 · 2679 阅读 · 0 评论 -
hdu 1054 Strategic Game
最小顶点覆盖!匈牙利算法 最小顶点覆盖 == 最大匹配(双向图)/2; (题目给的是单向的,添加反向边就行了) 此题有个小细节,数据较大,邻接矩阵会超时,要用邻接表! 用的是数组模拟的,250MS。 #includeusing namespace std;int n;int count;int ok[1510];int Right[1510]原创 2012-06-12 11:42:35 · 2508 阅读 · 0 评论 -
hdu 1800 字典树或Hash
很裸的字典树,用stl和Hash也能过,不过字典树效率高些。还有一篇用Hash写的,用的是最常用的ELF。直接上代码了。 字典树:#includeusing namespace std;struct dictree{ struct dictree * child[10]; int count;}*root;char key[31];int n;int原创 2012-06-12 11:36:06 · 3839 阅读 · 0 评论