Menu Sidebar
Menu

Archive: July 20, 2015

Codeforces Round #311 (Div. 2) B. Pasha and Tea

原题:http://codeforces.com/contest/557/problem/B 题目大意: 一个大小为w的茶壶, 给n个男孩儿,n个女孩儿倒茶. 一共有2n个杯子, 每个杯子的容量都不一样. 所有女孩儿喝x量的茶, 所有男孩儿需要喝2x量的茶. 问怎么倒能倒最多的茶. 分析: 一看以为是Greedy的题, 后来看了下tag, 发现是sorting, 能sort的就只有茶杯了, 于是把茶杯按容量从小到大排序. 一共有2n个茶杯. cup[0]是妹纸中拿到的最小的茶杯, 因为所有妹纸都喝一样多的茶,  所以最小茶杯的茶杯bound住妹纸们喝的总量, 同理, cup[n]是汉子中拿到的最小的茶杯, 它bound住所有汉子喝的茶. 所以妹纸们喝的总量是cup[0]*n, 汉子们喝的总量是cup[n]*n. 那么先给汉子倒茶还是先给妹纸倒茶? 这个不一定的, 要看cup[0]和cup[n]的大小, 如果cup[0]*2 > cups[n] 那么就要给汉子先倒茶, 反过来就要先给妹纸倒茶. 最后注意一下倒的总量不能超过w. 如果超过了 那么就是w了. public void solve(int testNumber, InputReader in, OutputWriter out) { int n = in.readInt(); long w = in.readLong(); long[] cups = […]

Codeforces Round #310 (Div. 2) A. Case of the Zeros and Ones

原题:http://codeforces.com/contest/556/problem/A 题目大意:给一个字符串,如果出现一个0和一个1就同时消除, 问最少剩下几个. 分析: – – 0和1的个数差几个就剩下几个啊.. public void solve(int testNumber, InputReader in, OutputWriter out) { int n = in.readInt(); int res = 0; String s = in.readLine(); for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == ‘0’) res ++; if (s.charAt(i) == ‘1’) res –; } out.print(Math.abs(res)); }

Codeforces Round #311 (Div. 2) A. Ilya and Diplomas

原题:http://codeforces.com/contest/557/problem/A 题目大意:给三个[min,max]格式的区间,A,B,C,分配n个东西, 问怎么分配在满足min的前提先, 按照满足A,B,C的先后顺序,最大分配. 分析:n个东西, 因为要满足B,C的min, 所以先拿出B的min和C的min, 剩下的就是n – min_B – min_C, 然后取min(max_A, n – min_B – min_C) 就是A的数量, 同理类推做B. 很水的题. public void solve(int testNumber, InputReader in, OutputWriter out) { int n = in.readInt(); int min_1 = in.readInt(); int max_1 = in.readInt(); int min_2 = in.readInt(); int max_2 = in.readInt(); int min_3 = in.readInt(); int […]

Codeforces Round #312 (Div. 2) C. Amr and Chemistry

原题:http://codeforces.com/problemset/problem/558/C 题目大意: 给一个数组, 可以对每个数进行两个操作, *2 或者 /2. 每次操作算一步, 问一共多少步能让数组所有数都相同. 分析: 下面的code是答案, 我写的太复杂了. 一看答案那么短, 真是跪了. 答案的思路是BFS, 然后也没有什么技巧. 就是暴啊. 而且是全局暴.. 我自己的code还左移右移的写了一大堆. public void solve(int testNumber, InputReader in, OutputWriter out) { int n = in.readInt(); int[] count = new int[100010];//记录从i点能走到其他点的总数 int[] visit = new int[100010];//防止环 int[] steps = new int[100010];//记录从i点走了多少步到其他点 int res = Integer.MAX_VALUE; for (int i = […]

书脊

这青苔碧瓦堆, 俺曾睡风流觉, 将五十年兴亡看饱.

July 2015
M T W T F S S
 12345
6789101112
13141516171819
20212223242526
2728293031