sicily 10330. Cutting Sausages】的更多相关文章

#include<stdio.h> int main() {    int n,m,j,k;    while(scanf("%d%d",&n,&m)!=EOF) { j=0; while(n%m!=0) {//将剩余的几分之几等的香肠看成n根香肠继续分给没有香肠的人 if(n>m)//每个人分n/m根香肠后剩余的香肠继续分 n=n%m; k=(m%n==0?m/n-1:m/n);//当前分的香肠需要几刀 j=j+k*n;//统计刀数 m=m%n;//…
2014年每周一赛第一场 A.Cutting Sausages                                        B.Rectangular Fields //待做    C.Valuable Jewellery 贪心+优先队列!背包和珠宝(重量)从小到大排!每次将小于当前背包的加入到优先队列,取出一个最大价值!   D.CS Clubs  暴力枚举因子统计!复杂度 O(n * logn)   E.Pattern Matching         …
题目描述 将中缀表达式(infix expression)转换为后缀表达式(postfix expression).假设中缀表达式中的操作数均以单个英文字母表示,且其中只包含左括号'(',右括号‘)’和双目算术操作符+,-,*,/. 输入格式 第一行是测试样例个数n.以下n行,每行是表示中缀表达式的一个字符串(其中只包含操作数和操作符和左右括号,不包含任何其他字符),长度不超过100个字符. 输出格式 为每一个测试样例单独一行输出对应后缀表达式字符串(其中只包含操作数和操作符,不包含任何其他字符…
Description 你有一些小球,从左到右依次编号为1,2,3,...,n. 你可以执行两种指令(1或者2).其中, 1 X Y表示把小球X移动到小球Y的左边, 2 X Y表示把小球X移动到小球Y右边. 指令保证合法,即X不等于Y. 例如,初始状态1,2,3,4,5,6的小球执行1 1 4后,小球1被移动到小球4的左边,即2,3,1,4,5,6.如果再执行2 3 5,结点3将会移到5的右边,即2,1,4,5,3,6. Input 第一行为一个整数t(0<t<10),表示测试用例个数.每个测…
Description In order to build a ship to travel to Eindhoven, The Netherlands, various sheet metal parts have to be cut from rectangular pieces of sheet metal. Each part is a convex polygon with at most 8 vertices. Each rectangular piece of sheet meta…
题目传送门 /* 贪心水题:首先,最少的个数为n最大的一位数字mx,因为需要用1累加得到mx, 接下来mx次循环,若是0,输出0:若是1,输出1,s[j]--: 注意:之前的0的要忽略 */ #include <cstdio> #include <iostream> #include <cstring> #include <string> #include <algorithm> #include <cmath> #include &…
题目传送门 /* 水题:一开始看错题意,以为是任意切割,DFS来做:结果只是在中间切出一段来 判断是否余下的是 "CODEFORCES" :) */ #include <cstdio> #include <iostream> #include <cstring> #include <string> #include <algorithm> #include <cmath> #include <set>…
Cutting Game 题意: 有一张被分成 w*h 的格子的长方形纸张,两人轮流沿着格子的边界水平或垂直切割,将纸张分割成两部分.切割了n次之后就得到了n+1张纸,每次都可以选择切得的某一张纸再进行切割.最先切出只有一个格子的纸张(即有 1*1 格子的)的一方获胜.当双方都采取最优策略时,先手必胜还是必败? 题解: 这题是小白书上的,在取得游戏中必胜策略的最后一题,我照着码一遍就叫了,结果居然T了,,最后发现是cin的问题,然后关下同步就可以a了,但好险用了913ms... 还有初始化mem…
    Search…
题意: 有一个长为L的木棍,木棍中间有n个切点.每次切割的费用为当前木棍的长度.求切割木棍的最小费用. 分析: d(i, j)表示切割第i个切点到第j个切点这段所需的最小费用.则有d(i, j) = min{d(i, k) + d(k, j)} + a[j] - a[i]; ( i < k < j ) 最后一项是第一刀的费用. 时间复杂度为O(n3) 最后还要注意一下输出格式中整数后面还要加一个句点. //#define LOCAL #include <iostream> #inc…