算法
ding制
朝着ML Security
展开
-
从原点到某点,路径不超过对角线。求这样的路径数量。
#include<stdio.h>#include<iostream>#define MAX 100using namespace std;typedef struct{ long int x; long int y;}point;long long int total[100]={0};long long int mod=100000000...原创 2019-04-07 19:35:43 · 331 阅读 · 0 评论 -
两个进程共享内存,一个写,一个读
要求是:生产者进程生成Catalan序列,并将其写入到内存共享对象。消费者进程从共享内存中读取并输出序列。生产者进程要在命令行指定生成Catalan数的数目。例如,命令行指定5,说明生产者进程会生成5个Catalan数:1 2 5 14 42这里的实现没有显式创建进程,因为打开不同的命令行窗口就于创建新进程。//生产者(write)#include <stdio....原创 2019-05-11 20:38:24 · 3205 阅读 · 0 评论 -
POJ 1182
转载https://cavenkaka.iteye.com/blog/1489588对一些不严谨的地方进行了修正建议:做此题之前先做poj 2524和poj 1611。这两道题都是并查集的基础应用。关键词:并查集相对关系思路:(用一个并查集就够了,同时对每个节点保持其到根结点的相对类别偏移量)1.father[x]表示x的根结点。rank[x]表示father[x]与x的关...转载 2019-07-24 23:06:12 · 139 阅读 · 0 评论 -
《挑战程序设计竞赛》阅读笔记
第一章:准备篇1.6 轻松热身ants 问题:把相遇的两个蚂蚁当作交换,当作无障碍原创 2019-08-26 23:03:13 · 3549 阅读 · 0 评论 -
POJ 3255
求最短路径可以用Bellman、Dijkstra等算法,而且可以利用二叉堆来降低复杂度,但是求次短路径就比较难了。参考《挑战程序设计竞赛》第二版,代码如下。思路:按照Dijkstra算法求出最短路径,并在此基础上修改,保存次短路径长度。关键点:每次从优先队列中取出的,要么是第一个if中dist[ ]加进去的最短路径长度,要么是第二个if中dist2[ ]中加进去的次短路径长度。需要注意...原创 2019-07-25 22:04:14 · 301 阅读 · 0 评论 -
2009 Round 1C C Bribe the Prisoners
题目可以在网上找,这里主要讲思路这是一个最优子,即最优解可以由子问题的最优解得到。主要思路在下面注意:(1)dp[i][j]表示的是,将从A[i]号囚犯到A[j]号囚犯(不含两端的囚犯)的连续部分里的所有囚犯都释放时,所需的最少金币总数。以dp[1][4]为例,这是把A[I]和A[4]之外的牢房都视为空牢房,并且把A[1]和A[4]当做两端的墙壁,求出的释放A[2]和A[4]所需...原创 2019-07-27 11:46:51 · 176 阅读 · 0 评论 -
Millionaire (2008 APAC local onsites C)
题目可以在网上找。很多博文上来就放代码,或者大致说一下思路,让人看着很费解,不理解代码里的变量到底是什么含义。先把书上的讲解贴上来。接下来,说明代码中变量的含义。(1)for(int r=0;r<M;r++) 这里的赌博轮数是倒序的,先求倒数第一轮的情况,再依次求前面各轮的情况,即r=0表示倒数第一轮,r = M-1表示第一轮。(2)dp[i][j]表示...原创 2019-07-27 18:34:47 · 509 阅读 · 0 评论