自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

原创 HDU 2196 Computer——树形dp

需要两遍dfs,一遍向上, 一遍向下#include #include #include #include using namespace std;const int INF = 0x3f3f3f3f;const int maxn = 1e4 + 10;int n, tot, head[maxn], dp[maxn][3];void init() { tot = 0;

2017-10-31 16:18:53 283

原创 HDU 1520 Anniversary party——树形dp

入门题#include #include #include #include #include #define IN freopen("in.txt". "r", stdin)#define OUT freopen("out.txt", "w", stdout);using namespace std;const int maxn = 1e4;const int INF =

2017-10-31 00:13:09 231

原创 UVALive - 7008 Tactical Multiple Defense System——二分图最大匹配

一个点由半径和斜率确定,判重后将半径和斜率之间建一条边跑匈牙利即可#include #include #include #include #include #include using namespace std;const int INF = 0x3f3f3f3f;const int maxn = 2 * 1e4 + 10;int tot, head[maxn];str

2017-10-30 14:52:13 336

原创 PTA 7-7 Windows消息队列

消息队列是Windows系统的基础。对于每个进程,系统维护一个消息队列。如果在进程中有特定事件发生,如点击鼠标、文字改变等,系统将把这个消息加到队列当中。同时,如果队列不是空的,这一进程循环地从队列中按照优先级获取消息。请注意优先级值低意味着优先级高。请编辑程序模拟消息队列,将消息加到队列中以及从队列中获取消息。#include #include #include #incl

2017-10-25 01:01:13 1461

原创 PTA 7-22 模拟EXCEL排序

Excel可以对一组纪录按任意指定列排序。现请编写程序实现类似功能。#include #include #include #include using namespace std;const int maxn = 1e5 + 10;struct Data { int id, score; char name[10];}data[maxn];bool

2017-10-25 00:59:39 2196

原创 7-21 PAT排名汇总

计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,各个考点的成绩将即刻汇

2017-10-25 00:58:22 1079 2

原创 7-20 奥运排行榜

每年奥运会各大媒体都会公布一个排行榜,但是细心的读者发现,不同国家的排行榜略有不同。比如中国金牌总数列第一的时候,中国媒体就公布“金牌榜”;而美国的奖牌总数第一,于是美国媒体就公布“奖牌榜”。如果人口少的国家公布一个“国民人均奖牌榜”,说不定非洲的国家会成为榜魁…… 现在就请你写一个程序,对每个前来咨询的国家按照对其最有利的方式计算它的排名。#include #include #inclu

2017-10-25 00:57:09 2534

原创 7-19 寻找大富翁

2015年胡润研究院的调查显示,截至2014年9月,个人资产在600万元以上高净值人群达290万人。假设给出N个人的个人资产值,请快速找出资产排前M位的大富翁。#include #include #include #include using namespace std;const int maxn = 1e6 + 10;int a[maxn];bool cmp(const in

2017-10-25 00:55:47 548

原创 PTA 7-18 新浪微博热门话题

新浪微博可以在发言中嵌入“话题”,即将发言中的话题文字写在一对“#”之间,就可以生成话题链接,点击链接可以看到有多少人在跟自己讨论相同或者相似的话题。新浪微博还会随时更新热门话题列表,并将最热门的话题放在醒目的位置推荐大家关注。本题目要求实现一个简化的热门话题推荐功能,从大量英文(因为中文分词处理比较麻烦)微博中解析出话题,找出被最多条微博提到的话题。MAP瞎暴

2017-10-25 00:54:13 2541

原创 PTA 7-17 字符串关键字的散列映射

给定一系列由大写英文字母组成的字符串关键字和素数P,用移位法定义的散列函数(将关键字Key中的最后3个字符映射为整数,每个字符占5位;再用除留余数法将整数映射到长度为P的散列表中。例如将字符串AZDEG插入长度为1009的散列表中,我们首先将26个大写英文字母顺序映射到整数0~25;再通过移位将其映射为3;然后根据表长得到,即是该字符串的散列映射位置。发生冲突时请用平方探测法解决。

2017-10-25 00:53:04 6160 1

原创 PTA 7-15 航空公司VIP客户查询

不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务。现给定某航空公司全体会员的飞行记录,要求实现根据身份证号码快速查询会员里程积分的功能。#include #include #include #include using namespace std;const int maxn = 1e6 + 10;const

2017-10-25 00:51:34 976

原创 PTA 7-13 畅通工程之局部最小花费问题

某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。#include #include #include

2017-10-25 00:50:01 582

原创 PTA 7-12 社交网络图中结点的“重要性”计算

在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也可以减弱。而结点根据其所处的位置不同,其在网络中体现的重要性也不尽相同。“紧密度中心性”是用来衡量一个结点到达其它结点的“快慢”的指标,即一个有较高中心性的结点比有较低中心性的结点能够更快地(平均意义下)到达网络中的其它结点,因而在

2017-10-25 00:47:16 1400

原创 PTA 7-11 公路村村通

现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。#include #include #include #include using namespace std;const int maxn = 1010;struct Edge { int from, to, cost; bool operato

2017-10-25 00:45:36 616

原创 PTA 7-10 旅游规划

有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。#include #include #include #include #include using namespace std;typedef pair P;cons

2017-10-25 00:44:12 888

原创 PTA 7-9 目录树

在ZIP归档文件中,保留着所有压缩文件和目录的相对路径和名称。当使用WinZIP等GUI软件打开ZIP归档文件时,可以从这些信息中重建目录的树状结构。请编写程序实现目录的树状结构的重建工作。#include #include #include #include #include #include using namespace std;struct Node { int

2017-10-25 00:42:58 1145

原创 PTA 7-8 修理牧场

农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L​i​​个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是L​i​​的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费1

2017-10-25 00:40:48 596

原创 PTA 7-6 银行排队问题之单队列多窗口加VIP服务

假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。有些银行会给VIP客户以各种优惠服务,例如专门开辟VIP窗口。为了最大限度地利用资源,VIP窗口的服务机制定义为:当队列中没有VIP客户时,该窗口为普通顾客服务;当该窗口空闲并且队列中有VIP客户在等待时,

2017-10-25 00:38:30 2483

原创 PTA 7-5 银行排队问题之单队列多窗口服务

假设银行有K个窗口提供服务,窗口前设一条黄线,所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时,下一位顾客即去该窗口处理事务。当有多个窗口可选择时,假设顾客总是选择编号最小的窗口。本题要求输出前来等待服务的N位顾客的平均等待时间、最长等待时间、最后完成时间,并且统计每个窗口服务了多少名顾客。#include #include #include #include usi

2017-10-25 00:37:08 2225

原创 7-4 银行排队问题之单窗口“夹塞”版

排队“夹塞”是引起大家强烈不满的行为,但是这种现象时常存在。在银行的单窗口排队问题中,假设银行只有1个窗口提供服务,所有顾客按到达时间排成一条长龙。当窗口空闲时,下一位顾客即去该窗口处理事务。此时如果已知第i位顾客与排在后面的第j位顾客是好朋友,并且愿意替朋友办理事务的话,那么第i位顾客的事务处理时间就是自己的事务加朋友的事务所耗时间的总和。在这种情况下,顾客的等待时间就可能被影响。假设所有人到达

2017-10-25 00:36:18 1861 1

原创 PTA 7-3 银行业务队列简单模拟

设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。#include using namespace std;const int MAXN = 1010

2017-10-25 00:34:39 2132

原创 PTA 7-2 一元多项式求导

设计函数求一元多项式的导数#include using namespace std;const int MAXN = 1e5 + 10;struct Data { int x, y;}data[MAXN];int main() { int a, b, cnt = 0; while (~scanf("%d", &a)) { scanf("%d", &

2017-10-25 00:33:38 1247

原创 PTA 7-1 一元多项式的乘法与加法运算

设计函数分别求两个一元多项式的乘积与和。#include #include #include #include using namespace std;const int maxn = 5000;int x[maxn], n1, n2, flag;struct Data { int x, y;}data1[maxn], data2[maxn];void output(

2017-10-25 00:31:57 933

原创 UVA - 1543 Telescope——最优三角剖分

最优三角剖分的变形#include #include #include #include #include using namespace std;const double PI = acos(-1.0);const int maxn = 50;struct Point { double x, y; Point(double xx = 0, double yy

2017-10-20 18:17:24 322

原创 PTA 7-2 家谱处理——模拟

人类学研究对于家族很感兴趣,于是研究人员搜集了一些家族的家谱进行研究。实验中,使用计算机处理家谱。为了实现这个目的,研究人员将家谱转换为文本文件。下面为家谱文本文件的实例:John Robert Frank Andrew Nancy David家谱文本文件中,每一行包含一个人的名字。第一行中的名字是这个家族最早的祖先。家谱仅包含最早祖先的后代,而他们的

2017-10-20 18:14:53 1263 1

原创 UVA 1331Minimax Triangulation——最优三角剖分

转移方程:dp[i][j] = min{dp[i][j], max{dp[i][k], dp[k][j], area(i, j, k)}}这题坑在判断三角形是否在多边形内部,想想发现有些三角形虽然在多边形外部,但他们不会对结果造成影响,只有这样的三角形会对结果造成影响:三角形在多边形外部,且三角形内部有多边形的顶点。所以只需要判断点和三角形的关系就可以了。不是很好想#include

2017-10-19 21:09:23 294

原创 CodeForces - 876B Divisiblity of Differences

#include #include #include #include #include using namespace std;const int maxn = 1e5 + 10;vector a[maxn];int n, k, m, x;int main() { scanf("%d %d %d", &n, &k, &m); for (int i = 0; i

2017-10-18 10:43:36 282

原创 UVA - 1609 Foul Play——思路题

挺好的思路题, 题解紫书249页写的很明白,不过推荐自己先想一下#include #include #include #include #include using namespace std;typedef pair P;const int maxn = 1300;bool vis[maxn];char str[maxn][maxn];int n, a[maxn][max

2017-10-17 20:24:27 273

原创 UVA - 1627 Team them up!——二分图染色+01背包

这题不是普通的01背包模型,是一个判断可行空间的01背包,是uva323的缩水版#include #include #include #include #include using namespace std;const int maxn = 110;const int maxm = 220;int g[maxn][maxn];vector G[maxn];int vis[

2017-10-16 21:13:36 315

原创 HDU - 5521 Meeting——增点建边+最短路

#include #include #include #include #include #include using namespace std;typedef pair P;const long long INF = 1e18;const int maxn = 2 * 1e6;bool vis[maxn];int n, m;long long dis1[maxn], d

2017-10-16 13:39:31 339

原创 UVA - 323 Jury Compromise——01背包

第二遍做因为问题有后效性, 所以当前状态不能由前面的状态转移而来,应该用这个状态更新后面的状态#include #include #include #include #include using namespace std;const int maxn = 205;int flag = 0, n, m, d[maxn], p[maxn], sum[maxn], sub[max

2017-10-15 11:33:13 390 1

原创 HDU 2444 The Accomodation of Students——二分图判定+最大匹配

判定后用匈牙利算法求出最大匹配#include #include #include #include #include using namespace std;const int maxn = 500;int n, m;vector G[maxn];int vis[maxn];int s1[maxn], s2[maxn], n1, n2;bool used[maxn];

2017-10-13 08:06:09 276

原创 匈牙利算法模板

#include #include #include #include using namespace std;const int maxn = 100;int n1, n2, m;bool vis[maxn];int match[maxn];vector G[maxn];bool dfs(int u) { for (int i = 0; i < G[u].size(

2017-10-12 20:02:13 226

原创 HihoCoder - 1121 二分图判定

#include #include #include #include using namespace std;const int maxn = 1e5 + 10;const int maxm = 4 * 1e5 + 10;int tot;int head[maxn];int vis[maxn];struct Edge { int to, next;}edge[max

2017-10-12 11:53:37 292

原创 UVA 1326 B - Jurassic Remains——暴力

不用位运算会超时#include using namespace std;int main() { char str[30]; int n, a[30], cnt, ans; while (~scanf("%d", &n)) { for (int i = 0; i < n; i++) { scanf("%s", str);

2017-10-11 22:37:50 239

原创 HDU 2586 How far away ?——lca

假设dis【i】为i到根节点的距离,那么u和v之间的距离为dis【u】 + dis【v】 - 2 * dis【lca(u,v)】#include #include #include #include #include using namespace std;typedef pair P;const int maxn = 4 * 1e4 + 10;int n, m;vector

2017-10-11 13:02:48 183

原创 RMQ模板

#include using namespace std;const int maxn = 100;int n, a[maxn], dp[10][maxn];void initrmq() { for (int i = 1; i <= n; i++) dp[0][i] = a[i]; for (int i = 1; (1<<i) <= n; i++) { fo

2017-10-11 08:54:25 239

原创 UVA 1476 A - Error Curves——三分

1.函数f只有一个凹点, 可以三分2.三分精度比较高,50次过不了,100次就过了#include #include #include #include #include using namespace std;const int maxn = 1e4 + 10;int n, a[maxn], b[maxn], c[maxn];double cal(int a, int

2017-10-10 21:49:30 357

原创 UVA 1349 Optimal Bus Route Design——最小权完美匹配

对于边u->v,将u拆分成u1 u2, v拆分成v1 v2,然后u1连接v2,s连接u1,v2连接t,就把整个图转化成了一个二分图,然后用二分图的最小权完美匹配就可以解决问题#include #include #include #include #include #include using namespace std;const int INF = 0x3f3f3f3f;co

2017-10-08 20:48:56 377

原创 UVA 1658 Admiral——拆点法+最小费最大流

对于边u->v的处理方法是先建立边u->u+n,权值为0, 然后建立边u+n->v权值为c,这样可以避免一个点经过多次的情况#include #include #include #include #include #include using namespace std;const int INF = 0x3f3f3f3f;const int maxn = 2 * 1e3 +

2017-10-08 16:19:41 328

Qt游戏编程——飞机大战

游戏模板,大家可以随意添加自己的元素

2017-07-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除