现在位置: 首页 > 算法 > 文章
2019年02月16日 算法 ⁄ 共 1610字 评论关闭
Bloodsucker Time Limit: 2 Seconds      Memory Limit: 65536 KB In 0th day, there are n-1 people and 1 bloodsucker.Every day, two and only two of them meet. Nothing will happen if they are of the same species, that is, a people meets a people or a bloodsucker meets a bloodsucker. Otherwise, people may be transformed into bloodsucker with probability p.Sooner or later(D days), all people will...
阅读全文
2019年02月16日 算法 ⁄ 共 2166字 评论关闭
One Person Game Time Limit: 1 Second      Memory Limit: 32768 KB      Special Judge There is a very simple and interesting one-person game. You have 3 dice, namelyDie1, Die2 and Die3. Die1 hasK1 faces. Die2has K2 faces.Die3 has K3 faces. All the dice are fair dice, so the probability of rolling each value, 1 toK1, K2, K3is exactly 1 /K1, 1 / K2 and 1 / K3.You have a counter, and the game i...
阅读全文
2019年02月10日 算法 ⁄ 共 1516字 评论关闭
真是数学要学好啊........................... Sum Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 9274   Accepted: 6071 Description Consider the natural numbers from 1 to N. By associating to each number a sign (+ or -) and calculating the value of this expression we obtain a sum S. The problem is to determine for a given sum S the minimum number N for which we can obt...
阅读全文
2019年02月10日 算法 ⁄ 共 1579字 评论关闭
题意:给一个操作和一个话题,操作有, new(加入新话题), reply(某话题置顶,同时当作新话题 ), tag(把某话题标记为旧话题), serach(从top到bottom输出前100个新话题)。 解法: 话题存在一个双向链表中(方便删除和插入), 每个话题名称映射一个链表的节点(用map),然后就是模拟。 坑点: 一个话题可以被tag多次,导致一开始访问了空指针(如果用链表做注意)。 //code #include<iostream> #include<c...
阅读全文
2019年02月10日 算法 ⁄ 共 2649字 评论关闭
#include <iostream> #include <cstdio> #include <map> #include <algorithm> using namespace std; const int INF = 0x7fffffff; struct Comb{ int sumConsist , sumType; int Consist[ 5 ] , Type[ 5 ]; int Highest; bool tie; Comb(){ tie = false; sumConsist = sumType = Highest = 0; } friend bool operator == ( Comb a , Comb b ){ ...
阅读全文
2019年02月09日 算法 ⁄ 共 1581字 评论关闭
转自  http://blog.csdn.net/accry/article/details/6607593 【题目大意】:用数轴描述一条高速公路,有V个村庄,每一个村庄坐落在数轴的某个点上,需要选择P个村庄在其中建立邮局,要求每个村庄到最近邮局的距离和最小。 【题目分析】:经典DP 1、考虑在V个村庄中只建立【一个】邮局的情况,显然可以知道,将邮局建立在中间的那个村庄即可。也就是在a到b间建立一个邮局,若使消耗最小,则应该将邮局建立在(a+b)/2这个村庄上...
阅读全文
2019年02月09日 算法 ⁄ 共 2122字 评论关闭
这题的作者 CUI, Tianyi, 也就是《背包九讲》的作者 崔天翼 。该题整合了几中典型的背包。所以能完全独立的状况下AC这道题。那么背包问题也就不是问题了。 首先膜拜下大神。 瞻仰下  Jane Street Capital。 下面是解题报告正文:    刚看完题,对于 MM的 another requirement 有点疑问。she want to buy one kind of cookies in each group。  刚开始的理解是只买一个。再阅读一遍后 才看到重点是 kind  一种cookie。侧面反映...
阅读全文
2019年02月09日 算法 ⁄ 共 1600字 评论关闭
题意:给你一棵无向树,让你求以某个点为根,其他所有点到根节点的路径和最小,答案等于这个路径和*I*I*R,如果有多个路径和最小的点,输出所有的点。 1 这题题目只要输出T组,开始以为多case,以EOF结束,wa了几发。 2 注意答案可能超int,所有得用__int64或者long long 。 3 每组样例得输出一个空行。 dp[i]表示以i节点为根的路径和。 num[i]表示以i节点为根的节点数和。 dfs1() dp[i]=dp[j]+num[j];  num[i]=sum(num[j])+1 ...
阅读全文
2019年02月09日 算法 ⁄ 共 1064字 评论关闭
差分约束系统: 1.输入的边 2.每个相邻点的边 3.每个点与源点的边 #include<cstdio> #include<iostream> #include<cstring> #include<vector> #include<queue> #define INF 0x7fffffff #define maxn 50005 using namespace std; struct node { int v,c; }; vector<node>g[maxn]; int t; int s,e; int sum[maxn]; int dis[maxn],vis[maxn]; void add(int u,int v,int c) { node ...
阅读全文
2019年02月08日 算法 ⁄ 共 1915字 评论关闭
最大流的入门题,第一次写了下ek算法,用了邻接矩阵。 EK算法的复杂度为O(n*m^2) 代码: //EK算法求最大流问题二维数组实现 #include<iostream> #include<queue> #include<cstring> #include<cstdio> #define INF 10000 #define maxn 205 using namespace std; int n,m; int path[maxn][maxn],pre[maxn],flow[maxn]; int vis[maxn]; int min(int x,int y) { return x<y?x:y; } int bfs() { ...
阅读全文