上一页 1 2 3 4 5 6 7 8 ··· 11 下一页

2013年9月30日

摘要: 题意 就是找到一个 位置 使得路由器可以覆盖所有英雄 可以不覆盖主人自己, 找到距离 主人房子最近的位置,距离为多少没想到 其实是道水题啊!! 分三个情况讨论第一个情况 如果 把主人的位置放上路由器 可以 覆盖到所有英雄,则答案出来了 0( 一个 半径为 d 的圆,边界上没有点);第二个情况 考虑 圆上只有一个点,这个圆只受到该点的约束( 则圆心在 连线上);第三个情况 两个点 或者更多点确定那个圆, 则当两个点或者更多的点都距离为d 时确定那个圆心;因为如果那个点的距离没有到d 证明我还可以更靠近一点房子 1 #include 2 #include 3 #include 4 #i... 阅读全文
posted @ 2013-09-30 01:25 浪舟 阅读(509) 评论(2) 推荐(0) 编辑

2013年9月22日

摘要: STL 使用,,由于数据范围没有 超越极限数据 依旧可以用 vector 搞定;#include#include#include#include#include#include#include#includeusing namespace std;pair >b;map >a;vectorv[1000006];int main( ){ int N,M; while( scanf("%d%d",&N,&M) != EOF ) { for( int i = 0; i = k )cout#include#include#include#include# 阅读全文
posted @ 2013-09-22 15:21 浪舟 阅读(295) 评论(0) 推荐(1) 编辑
摘要: cf 上的一道好题; 首先发现能生成所有数字-N 判断奇偶 就行了,但想不出来,如何生成所有数字,解题报告 说是 所有数字的中最大的那个数/所有数字的最小公倍数,好像有道理;纪念纪念;#include#include#include#include#include#includeusing namespace std;int arr[112];int gcd( int a,int b ){ if( b == 0 )return a; else return gcd( b,a%b );}int main( ){ int N; while( scanf("%d",&N) 阅读全文
posted @ 2013-09-22 14:47 浪舟 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 解题方法,,,首先应该可以看出来是一颗 最小生成树,任意一条的边的价值是不同的;所以计算出最小生成树的每一条边有多少对顶点满足他的 f 值就是这条边的 权值,因此可以在生成最小生成树的时候,进行一下统计,每加入一条边,就统计一下,得到 f 值和这条边权值相同有多少对顶点;方法是 记录一个 rank 数组,记录每个分支里面有多少个顶点,合并的时候,以为 是按照权值从小大大放入的,所以结果是 rank[a]*ran[b]*2;#include#include#include#include#includeusing namespace std;struct date{ int u,v,w; ... 阅读全文
posted @ 2013-09-22 14:25 浪舟 阅读(279) 评论(0) 推荐(0) 编辑

2013年9月20日

摘要: 链接 http://acm.fzu.edu.cn/problem.php?pid=2128解题方法 首先考虑暴力,,就是拿每一个字符串在匹配串里面找到所有位置,然后从头到尾不断更新最长的合理位置pos 同时记录出 最长的长度; 想到这样会超时,所以 AC 自动机一下,找到任意一个后缀最长能匹配的位置 方法是: 在构建自动机的 fail 指针的时候,找到任意位置的任意字符最长公共前缀的时候看那个位置是否有单词存在;#include#include#include#include#includeusing namespace std;struct date{ date *next[26],*f.. 阅读全文
posted @ 2013-09-20 21:38 浪舟 阅读(210) 评论(0) 推荐(0) 编辑

2013年9月17日

摘要: 获得 新的模板了/// 此模板 有线段和线段的最短距离方法,同时包含线段与线段的最短距离;#include#include#include#include#include#define eps 1e-10#define inf 0x1f1f1f1fusing namespace std;int dcmp( double a ){ if( abs(a) 0) return 1;return -1;}struct point{ double x,y,z; point(){} point( double x,double y,double z ):x(x),y(y),z(z){}};... 阅读全文
posted @ 2013-09-17 14:27 浪舟 阅读(532) 评论(0) 推荐(0) 编辑

2013年9月10日

摘要: 题意 裸的计算几何 求多边形重心;#include#include#include#include#includeusing namespace std;double a,b,c,d,e,f;double mix( double x,double y,double xx,double yy ){return x*yy - xx*y;}int main( ){ int N,T; scanf("%d",&T); while( T-- ) { scanf("%d",&N); scanf("%lf%lf%lf%lf",& 阅读全文
posted @ 2013-09-10 10:13 浪舟 阅读(190) 评论(0) 推荐(0) 编辑

2013年8月24日

摘要: 题意 就是说给你 N 个人站成一排,现在每个人都可以选择 1~M 中间的任意一个数字,相邻的两个人数字相同,则他必须是是 > K 的 问方案总数;方法 先求出递推式,然后用矩阵快速 mo mi 构造矩阵 时候很简单 递推方程式为 f(n) = f(n-1)*M - f( n-1 ) + f( n-2 )*( m - k ) 就是当前这个人必定是从前面那个人的所有组合数中满足条件的数量 × M 得到当前这个人的所有状态 但还需要减去 前面那个人有多少个是 以 #include#include#include#define mod 1000000007using namespace 阅读全文
posted @ 2013-08-24 20:30 浪舟 阅读(227) 评论(0) 推荐(0) 编辑

2013年8月17日

摘要: 题目意思 就是说 有一个起点一个终点 和一些虫洞,从一个虫洞进去然后出来,是不需要消耗时间的,注意点就是,虫洞是一条线段,你可以从线段的任意位置进去,从任意位置出来; 所以从一个虫洞到另一个虫洞的距离变成了空间的直线距离;线段到线段的最短距离 用三分的方法 #include#include#include#include#include#define eps 1e-10#define inf 0x1f1f1f1fusing namespace std;int dcmp( double a ){ if( abs(a) 0) return 1;ret... 阅读全文
posted @ 2013-08-17 19:55 浪舟 阅读(238) 评论(0) 推荐(0) 编辑

2013年8月16日

摘要: 题意 两条狗啊,同时跑,,同时结束,各自跑各自的道路,问跑的过程中,他们最大距离和最小距离的差;方法 恶心一点就是,最大最小距离的求解方法,假设两只狗都只有一条线段要跑,则可以判定在端点处有最大值,最小值的求解方法就是,把一条狗的奔跑方向分解成另一个狗的奔跑方向 + 另外一个向量,这样这条狗相对于另外一条狗处于相对静止;只要求点到线段的最小距离便是; 如果有两段以上的线段;考虑第一条线段;肯定会有一条狗先跑完第一段,另外一条狗没有跑完第一段,根据比例关系我们可以知道那条没有跑完的狗跑到那里了,因此可以得到那条没有跑完的狗的终点坐标;然后这条没有跑完的狗的下一条线段,就是这个终点到,,,,当前自 阅读全文
posted @ 2013-08-16 11:33 浪舟 阅读(366) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页

导航