入门经典例题
吃货妍
努力学习中
展开
-
例题7:偶数矩阵
题面见《算法竞赛入门经典》以后同。。。。 可以交题的传送门:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=24665题解:枚举第一行的所有情况,这里给出一种简单的枚举方法,假设n=3,则第一行的情况是从000到111,这正好对应了二进制从0到2^n-1.剩下小细节在代码中给出代码:#include #原创 2016-05-03 21:13:06 · 814 阅读 · 0 评论 -
第三章例题8 (频繁出现的数值)RMQ
给你长度为n的非递减数组,m次询问,问[l,r]内出现最多的值所出现的次数。 可交题的链接题解:真是好题,书上刚讲了RMQ,然后给出这道题,我一看两者也没啥联系啊,后来才知道,通过变化, 就是一道RMQ题。因为是非递减的,所以相等的元素一定是连续出现的,然后我们记录每个连续块的数值(value),长度(coun),左端点(lef),右端点(righ),以及每个数属于哪个连续块(num原创 2016-10-07 19:29:07 · 398 阅读 · 0 评论 -
第三章例题4 k个最小和
可交题的传送门挺好的姿势。代码:#include using namespace std;const int maxn=800;void merge(int *A,int *B,int *C,int n){ priority_queue pq; for(int i=0;i<n;i++) { pq.push((node){A[i]+B[0],0原创 2016-10-06 19:26:44 · 227 阅读 · 0 评论 -
第三章 例题三 阿格斯(自定义优先队列)
题目链接:可交题的传送门 记得刚入门的时候问过学长可不可以自己定义一个优先队列,不过学长没搭理我。。。代码:#include using namespace std;struct node//注意优先队列里的比较函数,跟正常的正好相反。{ int Qnum,Period,Time; bool operator < (const node &t)const{ r原创 2016-10-06 18:02:17 · 377 阅读 · 0 评论 -
例题25(侏罗纪)(中途相遇法)!
可交题的传送门题解:好题,就是看着书上的讲解也理解了好长时间。在代码中给出详细的解释。代码:#include#include#include#includeusing namespace std;const int maxn=24;maptable;int solo(int x){ return x==0?0:solo(x/2)+(x&1);//求对应的二进原创 2016-09-28 19:58:35 · 428 阅读 · 0 评论 -
例题23 遥远的银河
可交题的传送门代码:原创 2016-09-27 19:52:23 · 459 阅读 · 0 评论 -
例题20
能交题的传送门题解:把模型建立出来还是很好想的,就是求在某一时刻,被扫到线段的条数个数最多。代码:#include#include#include#include#include#include#includeusing namespace std;struct node{ double x; int type; bool operator <原创 2016-09-26 19:29:21 · 241 阅读 · 0 评论 -
例题15 网络
可以交题的传送门:叫我萌萌哒的传送门。题解:想求用最少的服务器覆盖整个客户端,我们贪心的想,对于每个服务器,我们把他放在距目前最远的的客户端k位置上。更新未满足的客户端,继续这个操作。代码给出详细解释。#include#include#include #include using namespace std;const int MAXN=1010;vectorgr[MAXN],原创 2016-08-22 21:30:13 · 403 阅读 · 0 评论 -
例题12组装电脑
提交传送门:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=13338主要是map的使用和二分答案。代码:#include #include #include #include #include #include #include #include #include #inclu原创 2016-05-08 12:37:14 · 275 阅读 · 0 评论 -
第三章 例题7(乒乓比赛)基础树状数组
可交题的链接一直WA,错在add 操作时,我把上限设成n,设成n不对吗? 不解。。。枚举每一个数,记录在它左边且比他小的数,在它右边且比他小的数,然后随便乘一下就好。代码:#include #include #include #include #define ll long longusing namespace std;const int maxn=20100;原创 2016-10-07 17:07:29 · 383 阅读 · 0 评论