CCPC 2017-2018, Finals Solution
A - Dogs and Cages
水。
#include <bits/stdc++.h>
using namespace std; int t;
double n; int main()
{
scanf("%d", &t);
for (int kase = ; kase <= t; ++kase)
{
scanf("%lf", &n);
printf("Case #%d: %.10f\n", kase, n - );
}
return ;
}
B - Same Digit
留坑。
C - Rich Game
题意:有两个人,A可以控制输赢,但是没有钱,B有无限的钱,他们打羽毛球,至少要获得11个点并且要比对方至少多获得两个点才能赢下当局,如果A 赢了 一个点,A要给B Y元,否则 B 给A X 元 求他们一共打K局的情况下,A最多可以赢多少局
思路:显然,当x > y 的时候 可以赢k局
考虑 x <= y 的情况 根据贪心的思路,假设A 要输 t 局
那么 必然要满足 $11yt >= (k - t)(11y - 9x)$
#include <bits/stdc++.h>
using namespace std; int t, x, y, k; int main()
{
scanf("%d", &t);
for (int kase = ; kase <= t; ++kase)
{
printf("Case #%d: ", kase);
scanf("%d%d%d", &x, &y, &k);
if (x > y) printf("%d\n", k);
else
{
int t = (int)ceil(k * ( * y - * x) * 1.0 / ( * y + * x));
printf("%d\n", k - t);
}
}
return ;
}
D - Mr. Panda and Circles
留坑。
E - Evil Forest
水。
#include <bits/stdc++.h>
using namespace std; #define N 1010 int t, n, sum, num; int main()
{
scanf("%d", &t);
for (int kase = ; kase <= t; ++kase)
{
scanf("%d", &n); sum = ;
for (int i = ; i <= n; ++i)
{
scanf("%d", &num);
sum += num;
sum += (num % ) ? (num / ) + : (num / );
}
printf("Case #%d: %d\n", kase, sum);
}
return ;
}
F - Fair Lottery
留坑。
G - Alice’s Stamps
题意:给出M个区间,选择K个区间,使得选择的元素尽量多,区间可以交叉
思路:$dp[i][j]$ 表示 第i位,选择k个区间的时候,数量最多是多少
三个状态转移
$dp[i + 1][j] = max(dp[i][j], dp[i + 1][j])$
$dp[i][j +1] = max(dp[i][j], dp[i][j + 1])$
$dp[i + cnt][j + 1] = max(dp[i + cnt][j], dp[i][j] + cnt)$
cnt 为 那个区间最长能到哪里
#include<bits/stdc++.h>
using namespace std;
#define N 2010
int dp[N][N];
struct node{
int l, r;
inline node(){}
inline node(int l, int r) :l(l), r(r){}
inline bool operator < (const node &b) const
{
return l == b.l ? r > b.r : l < b.l;
}
}arr[N];
int n, m, k;
int cnt, val;
int main()
{
int t;
scanf("%d",&t);
for(int cas = ; cas <= t; ++cas)
{
scanf("%d %d %d" , &n, &m, &k);
for(int i = ; i <= m; ++i)
{
scanf("%d %d", &arr[i].l, &arr[i].r);
}
sort(arr + , arr + + m);
memset(dp, , sizeof dp);
val = ;
cnt = ;
for(int i = ; i < n; ++i)
{
while(cnt <= m && arr[cnt].l == i + )
{
val = max(val, arr[cnt].r - arr[cnt].l + );
cnt++;
}
for(int j = ; j <= k; ++j)
{
dp[i + ][j] = max(dp[i + ][j], dp[i][j]);
dp[i][j + ] = max(dp[i][j], dp[i][j + ]);
dp[i + val][j + ] = max(dp[i + val][j + ], dp[i][j] + val);
}
if(val) --val;
}
printf("Case #%d: %d\n", cas, dp[n][k]);
}
return ;
}
H - Equidistance
留坑。
I - Inkopolis
留坑。
J - Subway Chasing
留坑。
K - Knightmare
题意:在无限大的棋盘上,马走日,有多少个点是能够走到的
思路:BFS找规律,二阶差分
#include <bits/stdc++.h>
using namespace std; #define ull unsigned long long int arr[] = {, , , , , , }; int t;
ull n; int main()
{
scanf("%d", &t);
for (int kase = ; kase <= t; ++kase)
{
printf("Case #%d: ", kase);
scanf("%llu", &n);
if (n <= ) printf("%d\n", arr[n]);
else
{
ull sum = ; n -= ;
sum += (ull) * n + (ull) * n * (n + );
printf("%llu\n", sum);
}
}
return ;
}
CCPC 2017-2018, Finals Solution的更多相关文章
- MyEclips 2017/2018 (mac 版)安装与破解
MyEclips 2017/2018 (mac 版)安装与破解 现在在学J2EE,然后使用的工具就是 MyEclipse,现在就抛弃 Eclipse 了,我就不多说它俩的区别了,但是 MyEclips ...
- MyEclipse 2017/2018 安装与破解 图文教程
SSM 框架-02-MyEclipse 2017/2018 安装与破解 现在在学J2EE,然后使用的工具就是 MyEclipse,现在就抛弃 Eclipse 了,我就不多说它俩的区别了,但是 MyEc ...
- </2017><2018>
>>> Blog 随笔原始文档及源代码 -> github: https://github.com/StackLike/Python_Note >>> 统计信 ...
- CCPC 2016-2017, Finals Solution
A - The Third Cup is Free 水. #include<bits/stdc++.h> using namespace std; ; int n; int arr[max ...
- 我的2017&2018
最近项目进入验收阶段,所以上班没那么忙碌了,但是怎么说呢,我可能天生是闲不住的主,觉得浑身不自在(我这样的人是不是特别不会享福),此处应该有个笑脸哈. 翻看了博客园好几个大牛写的技术文章,感慨大牛不愧 ...
- [2017 - 2018 ACL] 对话系统论文研究点整理
(论文编号及摘要见 [2017 ACL] 对话系统. [2018 ACL Long] 对话系统. 论文标题[]中最后的数字表示截止2019.1.21 google被引次数) 1. Domain Ada ...
- CorelDRAW X7 X8 2017 2018是什么关系?
从CorelDRAW 2017版本开始我们叫习惯了的X几系列的CorelDRAW毅然决然的就换了称呼,所以有时候很多朋友对于软件版本,经常会傻傻分不清,还有人认为X8版本比2017版本高,究竟为什么会 ...
- JetBrains 2017/2018全系列产品激活工具
可谓是工欲善其事,必先利其器,相信作为优秀开发工程师的你都想拥有一套快捷高效的编码工具,而JetBrains这家公司的产品,不管是那种编程语言,其开发工具确实让开发者们着迷,JetBrains的产品博 ...
- 2018-2019 ACM-ICPC, Asia East Continent Finals Solution
D. Deja vu of … Go Players 签. #include <bits/stdc++.h> using namespace std; int t, n, m; int m ...
随机推荐
- ZooKeeper(五)-- Curator使用
前言 Curator是Netflix开源的一套ZooKeeper客户端框架: 1.封装ZooKeeper client与ZooKeeper server之间的连接处理; 2.提供了一套Fluent风格 ...
- Python pymysql 模块
pymysql 是 Python3 连接 MySQL 的一个模块,常见用法如下: [root@localhost ~]$ pip3 install pymysql # 安装 pymysql 模块 In ...
- 使用HTML5 的跨域通信机制进行数据同步
离线应用系统的设计目标就是在网络离线情况下依然可以操作我们的应用系统,并在网络畅通的情况下与服务器进行数据交互. 所以离线应用系统最终会做成类似C/S架构的客户端应用程序.这边基于Chrome或者 S ...
- orcale增量全量实时同步mysql可支持多库使用Kettle实现数据实时增量同步
1. 时间戳增量回滚同步 假定在源数据表中有一个字段会记录数据的新增或修改时间,可以通过它对数据在时间维度上进行排序.通过中间表记录每次更新的时间戳,在下一个同步周期时,通过这个时间戳同步该时间戳以后 ...
- 【IOS6.0 自学瞎折腾】(五)应用程序的启动过程和Application生命周期
一 :main函数入口 看下项目资源结构,其实程序的入口也是在main.m里面. #import <UIKit/UIKit.h> #import "BvinAppDelegate ...
- Android长截屏-- ScrollView,ListView及RecyclerView截屏
http://blog.csdn.net/wbwjx/article/details/46674157 Android长截屏-- ScrollView,ListView及RecyclerV ...
- 超级小的web手势库AlloyFinger
针对多点触控设备编程的Web手势组件,快速帮助你的web程序增加手势支持,也不用再担心click 300ms的延迟了.拥有两个版本,无依赖的独立版和react版本.除了Dom对象,也可监听Canvas ...
- mysql优化之explain备忘笔记
今天使用explain来查看sql执行情况的时候发现有的东西忘掉了,故作此篇文章来强化此知识点的记忆. 1.explain作用 exlain 执行结果显示了mysql 存储引擎如何使用索引来处理sel ...
- 微信小程序 --- 完成小程序支付功能
最近开发小程序,一直在看小程序的支付.经过一天的努力,小程序支付功能最终实现了. 下面感谢 csdn 博主:千堆雪惹尘埃 发布的 " 小程序与php 实现微信支付 " 原文地址: ...
- Java 泛型 详解
一.什么是泛型 本质而言,泛型指的是参数化的类型.参数化的类型的重要性是:它能让你创建类.接口和方法,由它们操作的数据类型被指定为一个参数.操作参数化类型的类.接口或方法被称为泛型,如泛型类或泛型方法 ...