![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
acm
文章平均质量分 53
zafu_acm
这个作者很懒,什么都没留下…
展开
-
stl::map使用小结
stl::map使用小结。连续两场比赛都被坑在map映射上,然后决定花点时间了解map,三日来看来一些资料,今天搜了些用map解的题,做个小结,谈谈对map的用法、感受、以及注意事项。map是一种一红黑树为基础的映射,所以重载结构体(或者类)的‘map类似数组, 不过小标不再是 [i] , 而是一个关键字 key 如map_m,elem_key 是关键字的类原创 2013-05-21 20:50:27 · 533 阅读 · 0 评论 -
hdu-4111-Alice and Bob
题意:n堆不同数量的石头 A,B两人可进行如下两种操作1. 拿走其中一堆的其中一个石头2.合并任意两堆石头A先,直达轮到某人事,他无法进行任何操作,结束,并判该人输。题解:无论石头怎么堆, 操作次数的奇偶性确定,即可知道比赛结果。但是, 如果某堆石头只要一个,那么拿走他的同时, 合并的操作数也会减少一次,结果反转。但是可以推出,如果只有一个堆石子数是1, 那么该状态是必原创 2013-05-31 19:00:57 · 734 阅读 · 0 评论 -
HDU 4007
http://acm.hdu.edu.cn/showproblem.php?pid=4007题意:给出一系列整数点(X,Y),求用一个边长为R的正方形(平行于坐标轴)最多能够圈住多少个点(包括正方形的边界)。 先对X坐标排序,找出X轴符合的点,再对Y坐标排序寻找符合的点。#include#include#include#includeusing namespace st原创 2013-06-05 21:16:57 · 525 阅读 · 0 评论 -
sscanf sprintf
http://baike.baidu.com/view/1364018.htmsscanf(内容,格式,保存的数组变量);例如:char s[]={……},int b;sscanf(s,"%d",&b); //如同atoi第一次在百度百科上看到能看懂的东西sprintf(储存物,格式,内容);例如:char s[],int x=……;sprintf(原创 2013-06-04 22:17:10 · 507 阅读 · 0 评论 -
hdu-1823 二维线段树
#include#include#includeusing namespace std;const int MAXN = 3000;struct sub_node{int la, ra, _maxl;};struct node{int lh, rh;sub_node sub_t[MAXN];}t[MAXN];void build_sub(int id, int原创 2013-07-17 15:00:04 · 459 阅读 · 0 评论 -
HDU 2371 用矩阵置换字符
先给出Matrix67 大神给出的十种矩阵使用的例子http://www.matrix67.com/blog/archives/276HDU 2371 给出一个字符串和置换方法以及置换次数 求最后得到的字符串矩阵乘法水之#include#include#include#include #define MAXN 100 using namespac原创 2013-10-25 14:27:57 · 589 阅读 · 0 评论 -
HDU 2196
题意 :给定一张图,问图中的每个节点可到达叶子节点的最远距离分析可知,对于一个节点的最远距离来说,把该点作为树的根节点来考虑,那么最远距离要么是从该节点往下走,要么是从该节点往上走,再往下走。对于后一种情况来说,还要保证往下走的时候不会再一次经过该节点,所以要记录一个次远距离,当这种情况发生的时候,就用这个次远距离来计算。因为 N = 10000,那么就考虑用dp来做。do原创 2014-01-16 09:01:35 · 487 阅读 · 0 评论 -
bunoj 36907 Subpalindromes
这道题比赛的时候连读的机会的没有。原创 2014-08-13 12:59:55 · 501 阅读 · 0 评论 -
bnuoj 36905 Nested Segments
一题离散化+线段树比赛的时候往set方向上写了,dan's原创 2014-08-12 21:18:02 · 452 阅读 · 0 评论 -
hdu-4112-Break the Chocolate
题意:一块三维巧克力,手掰和刀切,最少几次,可分为n*m*k个单元块题解:手掰,要有n*m*k个就要掰n*m*k下,当然,你掰下最后第二个的时候,最后一个就自然出现了,所以手掰是n*m*k-1个;刀切, 可以上下叠起来切, 所以每一维的处理办法一样, 切一半+(一半的一半)+(一半的一半的一半)+..........,向上取整。//#include#includeusi原创 2013-05-31 19:19:40 · 883 阅读 · 0 评论 -
hdu-1413-文件系统
题意 : 题目很好理解。。。。就不重复了。解法:模拟, 只要调理清晰即可;我这里用了map存文件夹,用set存文件//code#include#include#include#includeusing namespace std;struct Dir{ string name; Dir *father; mapm_dir; setfile; frie原创 2013-05-27 22:47:34 · 691 阅读 · 0 评论 -
uva 10815
一开始记录了空字符串并输出了,,所以WA了好几次。后来把代码优化了一下,从700+ms优化到了162ms。#include#include#includeint cmp(const void *a,const void *b){ return strcmp((char*)a,(char*)b);}char a[1000],temp[1005];;char ans[5005]原创 2013-05-23 17:15:27 · 484 阅读 · 0 评论 -
hdu - 1263 水果
题意:给定水果交易记录,按要求格式输出即可题解:用STL中的MAP简单模拟;为水果的产地和名字创建一个类, 这样水果就是唯一的, 然后映射这个水果的数量, 按要求输出即可;//code#include#include#include#includeusing namespace std;struct Fruit{ ch原创 2013-05-20 19:20:32 · 702 阅读 · 0 评论 -
poj-2491-Scavenger Hunt
题意:没看题, 看数据猜的, 给N个站点, N-1段路的起点和终点, 让你输出整条路线。题解:用两个map 一个存某个站点出现的次数, 一个存某段路的起点和中点,找出只出现一次的两个点(起点和终点),判一下起点,从起点开始迭代输出站点即可;//code#include#include#include#include#include#include#includeu原创 2013-05-21 14:14:00 · 661 阅读 · 0 评论 -
zoj - 3309- Search New Posts
题意:给一个操作和一个话题,操作有, new(加入新话题), reply(某话题置顶,同时当作新话题 ), tag(把某话题标记为旧话题), serach(从top到bottom输出前100个新话题)。解法: 话题存在一个双向链表中(方便删除和插入), 每个话题名称映射一个链表的节点(用map),然后就是模拟。坑点: 一个话题可以被tag多次,导致一开始访问了空指针(如果用链表做注意)。原创 2013-05-21 20:12:50 · 611 阅读 · 0 评论 -
poj-2643-Election
题意:给你候选人以及候选人党派, 再给你每个人的选票, 统计出谁当选了;如果没有最优解, 输出”tie“否则输出当选人的党派;题解:还是两个map 一个映射候选人的党派, 还有一个映射候选人选票;//code#include#include#include#include#include#include#includeusing namespace std;原创 2013-05-21 14:51:15 · 625 阅读 · 0 评论 -
对二维字符数组排序(2SORT和1QSORT)
原文:http://www.cnblogs.com/submarine/archive/2010/04/22/1941254.html sort,用到了结构体第一种sort:282MS#include#includeusing namespace std;struct Array{ char data[30];}dna[20005];转载 2013-05-23 16:53:02 · 533 阅读 · 0 评论 -
HDU 2668
不多说了。。虽然使水题,但做了比较久#include#includechar a[10000005];int main(){ int n; int flag[200]; while(scanf("%d",&n)!=EOF) { getchar(); memset(flag,0,sizeof(flag)); int i,j,begin=0,last,max=-原创 2013-05-25 16:10:51 · 714 阅读 · 0 评论 -
hdu-1410-PK武林盟主
题意:A有hp1点血,ap1点攻击里;B有有hp2点血,ap2点攻击里,回合制,一个回合内只有一个人进行攻击,两人攻击是的概率是等可能的,问A胜的概率;解法:A能打B a(hp2/ap1+!!(hp2%ap1))下;B能打A b(hp1/ap2+!!(hp1%ap2))下;如果A胜,则B必然被打a下,A则可被打0~(b-1)下设 A 被打N下 且B被打死(故最后一下一定是原创 2013-05-27 20:59:13 · 1277 阅读 · 0 评论 -
凸包浅谈
今天开始计算几何之旅。第一章讲的是凸包,之前接触g原创 2014-08-13 17:51:54 · 533 阅读 · 0 评论