摘要: 题意:首先输入一个数字m(1 ≤ m ≤ 10^5),表示有m次操作(通过m次操作构造一个数字串,数字串初始化为空),接下有m行操作,每一行第一个数字表示操作类型,1:表示往数字串末尾加一个新数字,2:表示往数字串加Ci(1 ≤ ci ≤ 10^4)次已有串的前Li(1 ≤ Li ≤ 10^5)个数字;接着输入一个数字n,表示查询次数,下一行是查询数字串相应位置的值链接:http://codeforces.com/problemset/problem/380/A解法:用一个数组t存数字串前10^5数字,开一数组d记录每一次操作完数字串长度,对于每一次查询位置a,二分查找d数组,然后查询数组t。 阅读全文
posted @ 2014-01-21 13:48 CrazyForAC 阅读(412) 评论(0) 推荐(0)
摘要: 题目链接:http://codeforces.com/problemset/problem/348/A题意:n位朋友玩Mafia游戏,每一轮有1个supervisor和n-1个player,进行多轮Mafia,每1位朋友想做ai次player,要求满足所有朋友需要至少多少轮游戏?题解:首先找出需求最多次的ai标记为maxa,总需求数为sum,每一次游戏会有一位非player(就是supervisor),那么sum/(n-1)(向上取整)就是每一位朋友平均能够做多少次player,取max(maxa,(sum-1)/(n-1))就是答案。C++ code:#define N 100001#def 阅读全文
posted @ 2013-12-26 13:25 CrazyForAC 阅读(215) 评论(0) 推荐(0)
摘要: 题意:两只小熊有俩块质量可能不同的奶酪,小熊们都想得到更大快的奶酪,于是,准备打架,这时,狐狸来了说:“我来帮你们平分奶酪,假如其中一块奶酪分成2份,我拿一半的(1份),假如其中一块奶酪分成3份,我拿三分之二,假如其中一块奶酪分成5份,我拿五分之四,我会拿其中的一些奶酪”,小熊为平分奶酪只好接收了狐狸意见。输入数据给出a,b,代表两块奶酪质量,假如狐狸无法平分奶酪,则输出-1,能够平分奶酪,请输出最小操作(分割奶酪)次数。解题:首先,求出a和b最大公约数t,并且将a和b除去t,假如最后能够分成,那么最后俩只小熊各自会拿到t克奶酪,接着不断让a和b多次除去2、3、5,每一次除操作加1到不能再除为 阅读全文
posted @ 2013-12-25 21:12 CrazyForAC 阅读(153) 评论(0) 推荐(0)
摘要: 题目链接:http://codeforces.com/contest/350/problem/B题意:输入数据有n个点,点和点之前双向关联,其中有一些节点是旅馆(起点),需要找到一条节点最多的链,链中每一节点没分叉。题解:Hash记录节点链接次数,然后从每个起点开始dfs,dfs到分差节点停,直到找到最长链。#define N 100001#include#include#include#include#include#include#include#includeusing namespace std;int n,d[N],m[N],h[N],f[N],res[N];int dfs(int 阅读全文
posted @ 2013-12-24 11:28 CrazyForAC 阅读(213) 评论(0) 推荐(0)
摘要: 已经非常久没碰与算法相关的coding,从现在起,尽量坚持每天刷一道题,尽可能参加每一场Codeforces,这是新起点地第一个AC:题意:给出所有正确与错误答案所用时间,通过与否以运行时间来判断,寻找一个合理的最短的判题超时时间v:v必须符合以下4个条件:1、v是一个正整数;2、所有正确答案都必须通过;3、至少有一组正确答案通过时间小于v一半;4、所有错误答案都不能被通过;5、满足以上条件,v尽可能小;python code:1 I = lambda:map(int, raw_input().split())2 n, m = I()3 c = I()4 w = I()5 v = max(ma 阅读全文
posted @ 2013-12-14 21:43 CrazyForAC 阅读(223) 评论(0) 推荐(0)