
poj
ergedathunder
我见青山多妩媚,料青山见我应如是
展开
-
poj 2349
题意:第一行:测试数据数目:t 第二行:卫星数:s和哨所数e; 接下来e行:每个哨所的坐标; 有卫星的两个哨所可以随意通信,剩下的就等同于求最小生成树的最大边权 方法:把边权最大的s条边去掉,用最小生成树求剩下边的最边权; 贴代码:#include #include #include #include #include #include using namespace std; doub原创 2016-08-30 22:16:40 · 458 阅读 · 0 评论 -
poj 1125 图论最短路变形题
这是一个最短路的变形题 题意: 题目大意是股票经纪人要在一群人中散布一个谣言,而谣言只能在亲密的人中传递,题目各处了人与人之间的关系及传递谣言所用的时间,要求程序给出应以那个人为起点,可以在最短的时间内让所有的人都得知这个谣言。要注意从a到b传递的时间不一定等于从b到a的时间,如果没有方案能够让每一个人都知道谣言,则输出”disjoint”。(有关图的连通性,你懂得!但好像不用考虑这种情况一样能原创 2016-10-14 19:47:17 · 312 阅读 · 0 评论 -
poj 2034 Anti-prime Sequences
此题题意是给出m,n,k; 意思是在m~n的区间里任意连续的k个数必须为合数(注意:任意连续个大于2小于k的数都要满足为合数) 解题方法:dfs暴搜; 直接上代码:#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int k,a[1010],b[1010]; bool p[505110]; int原创 2016-09-21 22:21:33 · 356 阅读 · 0 评论 -
poj 2104 (暴力or划分树)
题意就是给m个数,n个询问,问在从a到b的区间里第k大的数是多少 这题有二十秒,纯暴力就可以过~~~和划分树什么的时间还差不多 上代码 #include #include #include using namespace std; struct node{ int zhi;int weizhi; }; node a[100010]; int cmp(node x,node y){ r原创 2016-08-11 15:18:29 · 381 阅读 · 0 评论 -
poj 3641 快速幂
输入m,n; 首先 若m为素数直接输出no; 若为素数,则判断n的m次方mod m=n mod m?; 若相等输出yes; 否则输出no 用取余+快速幂; 素数判断就不用说了 记得 long long #include #include #include #include #include using namespace std; long long pd(long long原创 2016-09-03 21:35:25 · 278 阅读 · 0 评论 -
poj 2689 Prime Distance
题意 给两个数m,n求m~n间的任意相邻的两个素数的最短距离和最大距离,若不存在两个素数输出There are no adjacent primes.这个题坑的我WA了十多次,千万注意数据范围:m-n<1000000; 然而m和n均在int范围内所以必须采用映射比如说数m~n之间的任意一个数i都可以用i-m存到数组里,若求的是2000000~3000000,则int数组b;b[0]记录的就是200原创 2016-09-14 14:13:24 · 266 阅读 · 0 评论 -
poj 1679 次小生成树 The Unique MST
第一行:N组测试数据 问有没有存在次小生成树得值等于最小生成树; 无向边 方法一:暴力在最小生成树里枚举: #include #include #include #include #define inf 999999999 using namespace std; int a[1010][1010],p[10010],dis[10010],sum; bool flag; int原创 2016-09-02 13:46:09 · 300 阅读 · 0 评论 -
poj 2031
#include #include #include #include #include using namespace std; const int maxn=100010,maxm=500; double inf=999999999.000; struct node{ double x,y,z,r; }a[maxn]; double e[maxm][maxm]; double dis[max原创 2016-08-31 19:53:11 · 237 阅读 · 0 评论 -
poj 1915(bfs广搜基本题)
第一行:测试数据的数目 然后一行:棋盘为一个N*N的;(记得横纵坐标最大为N-1) 接下来输入起点终点坐标; 直接从起点广搜到终点即可: #include #include #include #include #include #include #include using namespace std; int m,d[8][2]={{2,1},{2,-1},{1,2},{-1,原创 2016-09-02 13:35:51 · 367 阅读 · 0 评论 -
poj 3468
这个题意思是输入m,n,m个数,n个询问 然后Q是查询区间数的总和 C是把区间内所有值加上一个数 这个题要用到延迟标记: #include #include #include #include #include #include using namespace std; long long a[100010],tree[100010<<2],yan[100010<<2];//a是数,tre原创 2016-08-14 11:04:53 · 251 阅读 · 0 评论 -
poj 2386 lake counting
此题为搜索入门题 题意为求W连成一片的片数 思路:搜索W,ans++,再把上下左右左上左下右上右下的W标记,下次就搜不到这个了; 用的是最烂的的打表深搜 #include #include #include #include using namespace std; char a[110][110]; int p[110][110],sum; void dfs(int i,int j)原创 2016-08-14 16:53:13 · 314 阅读 · 0 评论 -
Corn fields poj 3254 (状压dp入门)
状态压缩动态规划: 动态规划的状态有时候比较恶心,不容易表示出来,需要用一些编码技术,把状态压缩的用简单的方式表示出来。 典型方式:当需要表示一个集合有哪些元素时,往往利用2进制用一个整数表示。 再普及一下位运算: & 按位与 如果两个相应的二进制位都为1,则该位的 结果值为1,否则为0 | 按位或 两个相应的二进制位中只原创 2017-01-21 16:53:53 · 324 阅读 · 0 评论