2015 ICL, Finals, Div. 2【ABFGJK】

【题外话:我......不补了......】

2015 ICL, Finals, Div. 2:http://codeforces.com/gym/100637

G. #TheDress【水】

(strstr函数真好用......)

代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 char s[101];
 4 int main() {
 5     int n, i;
 6     scanf("%d ", &n);
 7     int x = 0, y = 0, z = 0;//地球人,外星人,其他人
 8     for(i = 1; i <= n; ++i) {
 9         gets(s);
10         if(strstr(s, "blue") && strstr(s, "black")) x++;
11         else if(strstr(s, "white") && strstr(s, "gold")) y++;
12         else z++;
13     }
14     printf("%.10f\n", x*100.0/(x+y+z));
15     printf("%.10f\n", y*100.0/(x+y+z));
16     printf("%.10f\n", z*100.0/(x+y+z));
17     return 0;
18 }

F. The Pool for Lucky Ones【暴力】

题意:泳池有N个水道,假设水道人数最多的水道里的人都是不快乐的(可以有多个水道同时人数最多),现在允许你移动任意一个人到相邻水道(可以不移动),求最少的不快乐的人数。

代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 int a[100001], b[100001];//水道的人数 和 人数相同的水道数
 5 int main() {
 6     int n, i, j;
 7     ll ans = 0, ma = 0;
 8     scanf("%d ", &n);
 9     for(i = 1; i <= n; ++i) {
10         scanf("%d", &a[i]);
11         b[a[i]]++;
12         ma = max(1ll*a[i], ma);
13     }
14     ans = 1l * ma * b[ma];
15     for(i = 1; i <= n; ++i) {
16         if(!a[i]) continue;
17         if(i != n) {//从前往后移一个人
18             b[a[i]]--; b[a[i]-1]++;
19             b[a[i+1]]--; b[a[i+1]+1]++;
20             for(j = ma+1; j > 0; --j) {
21                 if(b[j] > 0) {
22                     ans = min(ans, 1ll*b[j]*j);
23                     break;
24                 }
25             }
26             b[a[i]]++; b[a[i]-1]--;
27             b[a[i+1]]++; b[a[i+1]+1]--;
28         }
29         if(i != 1) {//从后往前移一个人
30             b[a[i]]--; b[a[i]-1]++;
31             b[a[i-1]]--; b[a[i-1]+1]++;
32             for(j = ma+1; j > 0; --j) {
33                 if(b[j] > 0) {
34                     ans = min(ans, 1ll*b[j]*j);
35                     break;
36                 }
37             }
38             b[a[i]]++; b[a[i]-1]--;
39             b[a[i-1]]++; b[a[i-1]+1]--;
40         }
41     }
42     printf("%lld\n", ans);
43     return 0;
44 }

K. Microcircuits【dp】

题意:N个点放在环上,现在要不相交的连K条线,求方案数。

代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 ll dp[50][50];//dp[i][j]:i个点连j条边的方案数
 5 int main() {
 6     int n, k, i, j, p, q;
 7     scanf("%d%d", &n, &k);
 8     for(i = 0; i <= n; ++i) dp[i][0] = 1;
 9     for(i = 1; i <= n; ++i) {
10         for(j = 0; j <= k; ++j) {
11             dp[i][j] = dp[i-1][j];
12             for(p = 1; p < i; ++p) {//枚举连到哪个点
13                 for(q = 0; q < j; ++q) {//枚举子问题连边数
14                     dp[i][j] += dp[p-1][q] * dp[i-1-p][j-1-q];
15                 }
16             }
17         }
18     }
19     printf("%lld\n", dp[n][k]);
20     return 0;
21 }

B. Lunch【规律题】

有个讲得很清晰的题解:https://www.cnblogs.com/jerryRey/p/4676072.html

代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 int main() {
 5     int n, s, f, ans = 0, i, j;
 6     scanf("%d%d%d", &n, &s, &f);
 7     if(f < s) swap(s, f);
 8     if(s+1 == f) {
 9         if(s > 1 && f < n) puts("-1");
10         else puts("1");
11     }
12     else {
13         if(s > 1) ans++, s++;
14         if(f < n) ans++, f--;
15         ans += (f-s)/3 + (f-s)%3;
16         printf("%d\n", ans);
17     }
18     return 0;
19 }

A. Nano alarm-clocks

参考题解:https://www.cnblogs.com/liuweimingcprogram/p/5766622.html

J. Superfactorial numeral system【构造】

题意:给p,q,求满足该式的a序列。a[1]≥0,其他0≤a[k]≤k。

【注意用long long......】

代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 int main() {
 5     ll p, q, x = 1;
 6     scanf("%lld%lld", &p, &q);
 7     while(p) {
 8         p *= x;
 9         printf("%lld ", p/q);
10         p %= q;
11         x++;
12     }
13     puts("");
14     return 0;
15 }

原文地址:https://www.cnblogs.com/GraceSkyer/p/9030655.html

时间: 2024-08-02 04:43:51

2015 ICL, Finals, Div. 2【ABFGJK】的相关文章

如何在一堆框架(Frame)上弹出div层【转载】

框架Frame,不知道现在还有多少人会用,至少我学用html到现在,只是知道有这种东西存在,却没见到也没用到过.上周终于碰到个机会让我一窥框架是个啥东西,然后由于项目的需要,我得做个div层置于所有的框架之上,做成下拉菜单的效果.折腾了一下,就记在这里吧. 第一个DEMO展示的是框架,点击这里查看. 用框架来布局这种后台管理类的界面,结构上非常清晰,维护上也应该比较方便,因为每个框架里展示的页面是独立的.但是在一堆frameset和frame上要浮动起一个div层来,我试了一下,基本上行不通.当

Selenium2+python自动化26-js处理内嵌div滚动条【转载】

前言 前面有篇专门用js解决了浏览器滚动条的问题,生活总是多姿多彩,有的滚动条就在页面上,这时候又得仰仗js大哥来解决啦. 一.内嵌滚动条 1.下面这张图就是内嵌div带有滚动条的样子,记住它的长相. 2.页面源码如下:(老规矩:copy下来,用文本保存下来,后缀改成.html,用浏览器打开) <!DOCTYPE html><meta charset="UTF-8"> <!-- for HTML5 --><meta http-equiv=&qu

Regionals 2015 &gt;&gt; Asia - Tehran &gt;&gt; 7527 - Funfair【贪心】【dp】

7527 - Funfair 题目链接:7527 题目大意:玩一个闯关游戏,初始为x元,总共有n关,自己选择k关,以及过关顺序.过第i关的时候,赢得概率为pi,赢了之后可获得ai元,输了的话,则输去li * x的钱.问如何选择关以及闯关顺序使得最后的金钱数期望最大. 题目思路:首先,需要将关排序,这样可以保证第i+1关一定在i关之后过,然后进行dp,第i关取或者不取. 排序方式: 我们可以知道,过第i关的时候 赢: (Ai + x) * Pi 输: (1 - Pi)(1 - Li) * x 相加

A. Little C Loves 3 I Codeforces Round #511 (Div. 2) 【数学】

题目: Little C loves number ?3? very much. He loves all things about it. Now he has a positive integer nn. He wants to split nn into 3 positive integers a,b,ca,b,c, such that a+b+c=na+b+c=n and none of the 3 integers is a multiple of 3. Help him to fin

C. Enlarge GCD Codeforces Round #511 (Div. 2)【数学】

题目: Mr. F has nn positive integers, a1,a2,-,an. He thinks the greatest common divisor of these integers is too small. So he wants to enlarge it by removing some of the integers. But this problem is too simple for him, so he does not want to do it by

A. Right-Left Cipher Round #528 (Div. 2)【字符串】

一.题面 题目链接 二.分析 该题就是一个字符串的还原.长度为奇数时从左边开始,长度为偶数时从右边开始. 三.AC代码 1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 6 int main() 7 { 8 //freopen("input.txt", "r", stdin); 9 string s; 10 while(cin>>s) 11 { 12 string ans = &q

C. Ayoub and Lost Array Round #533 (Div. 2) 【DP】

一.题面 链接 二.分析 关于这题,两个点. 第一个点,是需要能够分析出$[L,R]$区间的3的余数的个数. 首先,可以得到,$[L,R]$区间内共有$(R-L+1)$个数. 设定余数为0,1,2的为一组,那么1,2,0和2,0,1也是一组.那么可以肯定能得到$(R-L+1)/3$组. 那么还余下了$(R-L+1)%3$个数.这里就需要考虑从$L$开始往右移$(R-L+1)%3$个数,分析这几个数的余数即可.因为这几个数后的数肯定是能分成3个一组的. 第二个点,用DP的思维去求解. 区间内的数能

【转】【翻】Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏

转自:http://mrfufufu.github.io/android/2015/07/01/Codelab_Android_Design_Support_Library.html [翻]Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏 Jul 1, 2015 译者地址:[翻]Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏 原文:Codelab for Androi

【转】用CSS+DIV时width的问题

CSS盒子占据面积的大小一共是边距(margin)+边框(border)+填白(padding)+宽度(width).所以当你设置width:200px;border:1px xx xx;的时候,实际的这个DIV的width最大值还是200.只是DIV的实际占据页面的宽度是:1(左边框)+200(width)+1(右边框)=202所以这个DIV里面还有200的宽度可以容纳包含的DIV.当然如果里面的DIV宽度大于200,外面DIV定义的宽度就会失去效果. 注意啦!注意啦!重点地方要回答你了,如果