
POJ
文章平均质量分 66
刘da帅气
这个作者很懒,什么都没留下…
展开
-
zoj 3609 Modular Inverse 求最小逆元 裸的的扩展欧几里得
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3609#include #include #include #include using namespace std;typedef long long LL;LL e_gcd(LL a, LL b, LL &x, LL &y){ if(b=原创 2017-04-23 21:32:04 · 460 阅读 · 0 评论 -
POJ 2503 Babelfish map水过,字典树????
map用法:mapq;可以直接q[s1] = s2; 这开辟了一个空间。查找可以s.find(s1); 返回一个迭代器,指向s1 可以 , printf("%s\n", q[s1].c_str()); 输出string,如果是%d,则 q[s1]即可也可以s.count(s1),统计s1数量,只能是1||0,s.erase(s1),删除s1s.clear();全部清空原创 2016-08-10 10:57:14 · 275 阅读 · 0 评论 -
POJ 3080 Blue Jeans 串的暴力
找相同的公共子串,若相同,输出考后的子串#include #include #include #include #include #include using namespace std;char str[10][100];char fin[100];char temp[100];int n;int judge(){ int i; for(i =原创 2016-08-09 15:28:33 · 414 阅读 · 0 评论 -
POJ 3349 Snowflake Snow Snowflakes 哈希
第一次做哈希 直接搜的题解,就当是照着葫芦画瓢吧代码如下~~~~#include #include #include #include #include #include using namespace std;typedef struct node{ int a[6];}item;item snow[15000][20];//p为14997int m[15原创 2016-08-08 21:57:01 · 315 阅读 · 0 评论 -
POJ 3273 Monthly Expense 最大值最小 二分法
#include#include #include int s[112345];int main(){ int n,m,i,low,high,mid,num,sum,z; while(~scanf("%d %d", &n, &m)){ low = 0; high = 0; for(i = 0;i < n;i++){原创 2016-08-19 15:03:56 · 309 阅读 · 0 评论 -
POJ 1035 Spell checker 字符串暴力
看好题目要求做就行 没什么难的 虽然wa了一上午,找了半天bug没有找出来,然后晚上回宿舍重新敲了一遍接着ac'了~~~~Orz#include #include #include #include #include #include using namespace std;char s[11100][20];char re[11100][20];int e, g;原创 2016-08-07 23:36:37 · 311 阅读 · 3 评论 -
POJ 3041 Asteroids 二分图最大匹配
最小覆盖点问题 可以转换成二分图的最大匹配#include #include #include #include #include #include using namespace std;bool map[600][600];bool book[600];int Search[600];int v1, v2;bool dfs(int x){ for(i原创 2016-08-07 22:14:25 · 337 阅读 · 3 评论 -
POJ 3687 Labeling Balls 反向拓扑建图是个坑点
还有一个坑点就是,如果之前输入过相同的a,b 那么再输入的就无效了 ,wa~~~~~~~~#include #include #include #include #include #include using namespace std;int map[300][300];int du[300];int book[300];int ans[300];int n;原创 2016-08-07 20:59:34 · 353 阅读 · 4 评论 -
POJ 1125 Stockbroker Grapevine floyd多源最短路,选取一个点,使最大边的权值是最小的
第一个输出选取的点,然后在输出选取的点到所有边的权值中最大的。选点如何选择??? 一个点到其余所有点的边都有一个最大值,这个最大值最小即可#include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;int d[110][110];void init(int原创 2016-08-02 21:38:20 · 454 阅读 · 0 评论 -
POJ 2253 Frogger 每条路径最大边然后选择这些最大边的最小的那个边 题解。。。根本翻译不出来
题目意思看的#include #include #include #include #include #include using namespace std;struct node{ int x; int y;}a[210];double d[210][210];int main(){ int n; int i, j, k;原创 2016-08-02 13:11:12 · 582 阅读 · 0 评论 -
POJ 1094 Sorting It All Out 拓扑排序(比较好的模板)
看好题目要求,输入一句立即判断,其余没有什么特殊要求#include#include#includeint map[110][110];int du[110];int du2[110];char a[1110];int flag;//0表示排好,1表示无序,2成环int n, m;void topsort(){ int i, j; int cnt = 0;原创 2016-08-05 22:51:03 · 243 阅读 · 0 评论 -
POJ 1602 昂贵的聘礼 最短路,挺蒙b的
#include #include #include #include #include #define inf 0x3f3f3f3fusing namespace std;int price[110], level[110];int map[110][110];int dis[110];int book[110];int limit[110];int n, m;in原创 2016-08-03 14:15:00 · 388 阅读 · 0 评论 -
nefu 116 两仪剑法 最小公倍数
注意数据范围 用long long//#include////int gcd(long long a, long long b)//{// return b==0?a:gcd(b,a%b);//}//int main()//{// long long n, m;// while(~scanf("%lld %lld", &n, &m)){//原创 2016-08-22 16:28:29 · 392 阅读 · 0 评论 -
POJ 3253 Fence Repair 优先队列
优先队列,每次选取两个小的元素求和加入到队列中,当队列还剩下一个元素的时候,跳出即可,还有就是sum要定义成longlong#include #include #include #include #include #include #include #include #include using namespace std;int main(){ priori原创 2016-08-10 20:07:39 · 231 阅读 · 0 评论 -
poj 2406 Power Strings
题目链接求一个字符串的循环节为多大,直接用kmp的next的数组求法写#include #include using namespace std;char s[1123456];int next[1123456];int main(){ while(~scanf("%s", s)){ if(s[0] == '.'){ break;原创 2017-04-06 21:56:17 · 259 阅读 · 0 评论 -
字典树的题目 找了个时间刷了一点字典树的题目
http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/2009/pid/2828#include #include #include #include #include using namespace std;struct node{ int v; node原创 2017-04-26 09:24:58 · 1288 阅读 · 2 评论 -
poj 3009 Curling 2.0
Curling 2.0只要步数超过了10||超过了之前已经存在的步数,就可以不用再继续往下找了 #include #include #include #include #include using namespace std;int n, m;int Map[30][30];int dx[] = {0,0,1,-1};int dy[] = {1,-1,0,0};原创 2017-04-17 20:29:11 · 350 阅读 · 0 评论 -
POJ 1961 Period
求一个字符串在第几位上出现了循环节,输出位数 以及循环节的大小#include #include #include #include #include using namespace std;int main(){ char s[1000100]; int t; int Case = 1; while(~scanf("%d", &t)){原创 2017-04-08 20:12:12 · 269 阅读 · 0 评论 -
POJ 1265 Area
题目大意:给一个平面上的简单多边形,求边上的点,多边形内的点,多边形面积。解题思路:这个题用了很多知识点:1、以格子点为顶点的线段,覆盖的点的个数为GCD(dx,dy),其中,dxdy分别为线段横向占的点数和纵向占的点数。如果dx或dy为0,则覆盖的点数为dy或dx。2、Pick公式:平面上以格子点为顶点的简单多边形的面积=边上的点数/2+内部的点数+1。3原创 2016-12-02 00:07:39 · 302 阅读 · 0 评论 -
POJ 1321 棋盘问题
网上代码1:#include#includeint n,k,vis[15],ans;char mat[15][15];void dfs(int cur,int num){ if(num==k) { ans++; return; } for(int i=cur;i<n;i++) for(int j=0;j<n;j++) if(mat[原创 2016-08-13 20:25:32 · 231 阅读 · 0 评论 -
POJ 2488 A Knight's Journey
控制好八个方向就行,安字典序,所以~~~先列再行代码#include #include #include #include #include using namespace std;int step;int flag;int path[50][50];int book[50][50];int dx[] = {-1,1,-2,2,-2,2,-1,1};int dy[原创 2016-08-13 16:49:05 · 215 阅读 · 0 评论 -
POJ 1840 Eqs 暴力哈希
用short#include #include #include #include #include #include #include #include #include using namespace std; short has[25000000];//上限为15000000,把负数全都移到15000000之后int main(){ int a[5]原创 2016-08-11 21:51:31 · 365 阅读 · 0 评论 -
POJ 1442 Black Box 优先队列 求前a[k]个数中第k大的数
维护两个队列,开A#include #include #include #include #include #include #include #include #include using namespace std;int a[31000];int main(){ int m, n; scanf("%d %d", &m, &n);原创 2016-08-11 20:22:54 · 441 阅读 · 0 评论 -
POJ 2442 Sequence k路归并,优先队列
维护一个最大堆,堆里面的就是所求前k个最小值#include #include #include #include using namespace std;int a[2100];int b[2100];int main(){ int t; scanf("%d", &t); int m, n; int i, j, k; int g;原创 2016-08-11 14:59:49 · 295 阅读 · 0 评论 -
POJ 2418 Hardwood Species map水过,字典树的题目
map默认初始化为0 按键字典序自动排序让我们一起来分析一下while(getline(cin,line))语句注意这里默认回车符停止读入,按Ctrl+Z或键入EOF回车即可退出循环。在这个语句中,首先getline从标准输入设备上读入字符,然后返回给输入流cin,注意了,是cin,所以while判断语句的真实判断对象是cin,也就是判断当前是否存在有效的输原创 2016-08-11 14:50:24 · 339 阅读 · 0 评论 -
POJ 2240 Arbitrage 套利
自己到自己开始为1,经过floyd。。。。。之后看看是否有map[i][i]>1,如果有,就可以获利#include #include #include #include #include #define inf 0x3f3f3fusing namespace std;double map[50][50];void view(int n){ char s[100]原创 2016-08-02 19:59:14 · 304 阅读 · 0 评论 -
POJ 3087 Shuffle'm Up 模拟题小水
用map来标记以前出现过的状态#include #include #include #include using namespace std;int main(){ int t; int cnt = 0; scanf("%d", &t); int c; while(t--){ char s1[220],s2[220],s12原创 2016-08-17 15:15:40 · 291 阅读 · 0 评论 -
POJ 2996 Help Me with the Game 国际象棋,模拟
按照国际象棋的棋盘格局画棋盘,BLACK从最后一行开始遍历,White从第一行开始遍历,输出按照K->Q->R->B->N->P的顺序输出即可#include #include #include #include #include #include using namespace std;char map[40][40];int main(){ int i, j原创 2016-07-27 11:40:34 · 306 阅读 · 0 评论 -
POJ 3295 Tautology 永真式,栈的简单模拟
倒这做比较方便,通过元素进栈,元素符号取出栈中元素做运算再放回栈中即可实现。#include #include #include #include #include #include using namespace std;char str[150];int q, p, s, t, r;int stack[150];void view(){ int top =原创 2016-07-28 09:49:01 · 267 阅读 · 0 评论 -
POJ 2586 Y2K Accounting Bug 简单贪心
全年的盈亏情况可以由前五个月直接决定1、若SSSSD亏空,那么全年最优情况为SSSSDSSSSDSS2、若SSSDD亏空,那么全年最优情况为SSSDDSSSDDSS3、若SSDDD亏空,那么全年最优情况为SSDDDSSDDDSS4、若SDDDD亏空,那么全年最优情况为SDDDDSDDDDSD5、若DDDDD亏空,全年必亏空#include #include #include #inc原创 2016-07-26 15:21:41 · 247 阅读 · 0 评论 -
POJ 2109 Power of Cryptography double的运算技巧问题
换思路:k^n=p,则p^(1/n)=k。且函数可以直接用pow(x,y)去求x^y。 收获:巩固了一下基础。启发了一下思维。 类型 长度 (bit) 有效数字 绝对值范围 float 32原创 2016-07-25 18:40:08 · 269 阅读 · 0 评论 -
POJ 1328 Radar Installation 贪心(区间选点)
区间选点问题,坑点 一个是double类型,2是y > d|| d #include #include #include #include #include #include using namespace std;struct node{ double u; double v;}a[1123];bool cmp(node a, node b){原创 2016-07-26 09:21:44 · 429 阅读 · 0 评论 -
POJ 2485 Highways 最小生成树
题目要求:求一个最小生成树的最大边的权值,直接Prim,这题从上午十一点开始TLE,一直到下午15:06分坐了出来,一直TLE->WA->TLE->PE,不过最后还是做出来了,TLE的原因主要是book标记数组必须用bool类型,~~~~~,中间还用了Kruskal的算法,也是TLE,不知道为什么,总之好无语~~~~~Prim的代码如下:#include #include #include原创 2016-07-25 15:14:37 · 275 阅读 · 0 评论 -
POJ 1753 Flip Game 深搜
比POJ 2965 简单一点不用输出路径,直接上代码了#include #include #include #include #include #include using namespace std;int map[6][6];char a[6][6];int flag;int ans;int dx[] = {0,1,-1,0};int dy[] = {1,0,0,-原创 2016-07-28 11:37:15 · 264 阅读 · 0 评论 -
POJ 2632 Crashing Robots 模拟题目
我做的时候是把地图又给反转回去了 ~~~一定要看好方向吧~~~~~#include #include #include #include #include #include using namespace std;int map[1101][1110];struct node{ int x,y; int dir;//0,1,2,3,N,W,S,E}rob[11原创 2016-07-28 11:25:08 · 281 阅读 · 0 评论 -
POJ 2965 The Pilots Brothers' refrigerator 深搜
好久没敲深搜了,弱弱比较难想~~~~看了题解才做出来的#include #include #include #include #include #include using namespace std;int map[6][6];char a[6][6];int b[105][2];int flag;int ans;bool check(){ int i,原创 2016-07-28 10:56:53 · 231 阅读 · 0 评论 -
POJ 2993 Emag eht htiw Em Pleh(模拟)
跟POJ2996一样,反过来即可,没玩过国际象棋,坐标转换比较恶心代码如下:#include #include #include #include #include #include using namespace std;char s1[40];char s2[40];int main(){ char map[40][40] = {"+---+---+---+-原创 2016-07-27 14:57:32 · 294 阅读 · 0 评论 -
poj 2506 Tiling(大数+递推)
递推公式 s[i] = s[i-2]*2 + s[i-1]#include #include #include #include #include #include using namespace std;int s[255][100];void fun(){ s[0][0] = 1;//一定要加上,否则wa s[1][0] = 1; s[2][0原创 2016-07-27 10:17:53 · 295 阅读 · 0 评论 -
poj 1086 Parencodings 括号匹配,模拟
数组一定要开大,找了一晚上bug,第二天灵感一来,把数组开大,然后就a了~~~GG算法核心 找到一个右括号(下标为j),然后往前找第一个没有用到的左括号(下标为i),然后(i-j+1)/2即为包涵的括号数量 #include #include #include #include #include #include using namespace std;char seq[12原创 2016-07-27 09:29:11 · 767 阅读 · 0 评论 -
POJ 1573 Robot Motion 水模拟
step后面的s不用讨论,~~~~不然wa.......#include #include #include #include #include #include using namespace std;//0,1,2,3,N,W,S,Eint map[15][15];char a[15][15];int dx[] = {-1,0,1,0};int dy[]原创 2016-07-28 20:32:24 · 267 阅读 · 0 评论