2016ACM青岛区域赛题解
A、Relic Discovery_hdu5982
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 57 Accepted Submission(s): 49
2
1 2
3 4
#include <iostream>
#include <cstdio> using namespace std; int main()
{
int n;
int t;
int a,b;
scanf("%d",&t);
for(int i=;i<t;i++){
scanf("%d",&n);
int sum=;
for(int j=;j<n;j++){
scanf("%d %d",&a,&b);
sum+=a*b;
}
printf("%d\n",sum);
} return ;
}
B、Pocket Cube_5983
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 23 Accepted Submission(s): 9
The cube consists of 8 pieces, all corners.
Each piece is labeled by a three dimensional coordinate (h, k, l) where h, k, l ∈ {0, 1}. Each of the six faces owns four small faces filled with a positive integer.
For each step, you can choose a certain face and turn the face ninety degrees clockwise or counterclockwise.
You should judge that if one can restore the pocket cube in one step. We say a pocket cube has been restored if each face owns four same integers.
For each test case, the first line describes the top face of the pocket cube, which is the common 2 × 2 face of pieces
labelled by (0, 0, 1),(0, 1, 1),(1, 0, 1),(1, 1, 1). Four integers are given corresponding to the above pieces.
The second line describes the front face, the common face of (1, 0, 1),(1, 1, 1),(1, 0, 0),(1, 1, 0). Four integers are
given corresponding to the above pieces.
The third line describes the bottom face, the common face of (1, 0, 0),(1, 1, 0),(0, 0, 0),(0, 1, 0). Four integers are
given corresponding to the above pieces.
The fourth line describes the back face, the common face of (0, 0, 0),(0, 1, 0),(0, 0, 1),(0, 1, 1). Four integers are
given corresponding to the above pieces.
The fifth line describes the left face, the common face of (0, 0, 0),(0, 0, 1),(1, 0, 0),(1, 0, 1). Four integers are given
corresponding to the above pieces.
The six line describes the right face, the common face of (0, 1, 1),(0, 1, 0),(1, 1, 1),(1, 1, 0). Four integers are given
corresponding to the above pieces.
In other words, each test case contains 24 integers a, b, c to x. You can flat the surface to get the surface development
as follows.
+ - + - + - + - + - + - +
| q | r | a | b | u | v |
+ - + - + - + - + - + - +
| s | t | c | d | w | x |
+ - + - + - + - + - + - +
| e | f |
+ - + - +
| g | h |
+ - + - +
| i | j |
+ - + - +
| k | l |
+ - + - +
| m | n |
+ - + - +
| o | p |
+ - + - +
#include <iostream>
#include <cstdio> using namespace std; int a[][];
int b[][]; bool judge(){
int i=;
for(int j=;j<=;j++){
if(a[j][]==a[j][]&&a[j][]==a[j][]&&a[j][]==a[j][]){
i++;
}
}
if(i==){
return true;
}else{
return false;
}
} void opera1(){//前面顺时针
int t1,t2;
t1=a[][];
t2=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=t2;
a[][]=t1;
}
void opera2(){//前面逆时针
int t1,t2;
t1=a[][];
t2=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=t2;
a[][]=t1;
}
void opera3(){//上面顺时针
int t1,t2;
t1=a[][];
t2=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=t1;
a[][]=t2;
}
void opera4(){//上面逆时针
int t1,t2;
t1=a[][];
t2=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=t2;
a[][]=t1;
}
void opera5(){//左边顺指针
int t1,t2;
t1=a[][];
t2=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=t1;
a[][]=t2;
}
void opera6(){//左边逆时针
int t1,t2;
t1=a[][];
t2=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=a[][];
a[][]=a[][]; a[][]=t1;
a[][]=t2;
}
int main()
{
int n;
scanf("%d",&n);
while(n--){
for(int i=;i<=;i++){
for(int j=;j<=;j++){
scanf("%d",&a[i][j]);
b[i][j]=a[i][j];
}
}
if(judge()){
printf("YES\n");
continue;
}
opera1();
if(judge()){
printf("YES\n");
continue;
}
for(int i=;i<=;i++){
for(int j=;j<=;j++){
a[i][j]=b[i][j];
}
}
opera2();
if(judge()){
printf("YES\n");
continue;
}
for(int i=;i<=;i++){
for(int j=;j<=;j++){
a[i][j]=b[i][j];
}
}
opera3();
if(judge()){
printf("YES\n");
continue;
}
for(int i=;i<=;i++){
for(int j=;j<=;j++){
a[i][j]=b[i][j];
}
}
opera4();
if(judge()){
printf("YES\n");
continue;
}
for(int i=;i<=;i++){
for(int j=;j<=;j++){
a[i][j]=b[i][j];
}
}
opera5();
if(judge()){
printf("YES\n");
continue;
}
for(int i=;i<=;i++){
for(int j=;j<=;j++){
a[i][j]=b[i][j];
}
}
opera6();
if(judge()){
printf("YES\n");
continue;
}
for(int i=;i<=;i++){
for(int j=;j<=;j++){
a[i][j]=b[i][j];
}
}
printf("NO\n");
}
return ;
}
C、Pocky_hdu5984
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 54 Accepted Submission(s): 20
While the length of remaining pocky is longer than d, we perform the following procedure. We break the pocky at any point on it in an equal possibility and this will divide the remaining pocky into two parts. Take the left part and eat it. When it is not longer than d, we do not repeat this procedure.
Now we want to know the expected number of times we should repeat the procedure above. Round it to 6 decimal places behind the decimal point.
1.0 1.0
2.0 1.0
4.0 1.0
8.0 1.0
16.0 1.0
7.00 3.00
1.693147
2.386294
3.079442
3.772589
1.847298
#include <iostream>
#include <cstdio>
#include <cmath> using namespace std; int main()
{
int n;
double a,b;
scanf("%d",&n);
while(n--){
scanf("%lf%lf",&a,&b);
if(a<=b){
printf("0.000000\n");
continue;
}
printf("%.6lf\n",log(a)-log(b)+);
}
return ;
}
2016ACM青岛区域赛题解的更多相关文章
- 2016 ACM/ICPC Asia Regional Qingdao Online(2016ACM青岛网络赛部分题解)
2016 ACM/ICPC Asia Regional Qingdao Online(部分题解) 5878---I Count Two Three http://acm.hdu.edu.cn/show ...
- 2016青岛区域赛.Coding Contest(费用流 + 概率计算转换为加法计算)
Coding Contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- ACM/ICPC2016 青岛区域赛
A(hdu5982).(模拟) 题意:输入n对数,将每对数相乘并相加 分析:模拟 B(hdu5983).(模拟) 题意:给你一个二阶魔方,问能否通过一次旋转使得给定魔方的每个面颜色相同 分析:模拟 C ...
- 2016ACM-ICPC Qingdao Online青岛网络赛题解
TonyFang+Sps+我=5/12 滚了个大粗 2016年9月21日16:42:36 10题完工辣 01 题意:求形同的数中大于n的最小值 题解:预处理所有的(5194个),在这里面二分 #inc ...
- 2016 年 ACM/ICPC 青岛区域赛 Problem C Pocky
昨晚乱入学弟的训练赛,想了一下这个题.推导的过程中,加深了对公理化的概率论理解.$\newcommand{\d}{\mathop{}\!\mathrm{d}}$ 解法一 考虑 $ d < L$ ...
- 2018 ACM-ICPC南京区域赛题解
解题过程 开场开A,A题shl看错题意,被制止.然后开始手推A,此时byf看错E题题意,开始上机.推出A的规律后,shl看了E题,发现题意读错.写完A题,忘记判断N=0的情况,WA+1.过了A后,sh ...
- Tournament ZOJ - 4063 (青岛区域赛 F 打表)
打表题.. 规律是找出来了 奈何优化不了 .... #include <iostream> #include <cstdio> #include <sstream> ...
- UVALive - 7740 Coding Contest 2016 青岛区域赛 (费用流)
题意:每个点i有\(s_i\)个人和\(b_i\)份食物,每个人都要找到一份食物.现在有M条有向边,从点i到点j,容量为c,第一次走过不要紧,从第二次开始就要承担\(p(0<p<1)\)的 ...
- 第42届亚洲区域赛青岛站(2017icpc青岛)经验总结以及一些感想
上一次写这种东西还是天梯赛,当时打完心里也是挺激动的,然后我们队也没有去参加省赛,但是过了一段时间我还是从那里面恢复了出来.因为我当时确实还是很菜的,当时连个暴力都不会,看着自己仅过的那些百度的题目确 ...
随机推荐
- odoo种种
[精]Odoo 8.0深入浅出开发教程-模块开发基础 http://blog.csdn.net/sunansheng/article/details/50864527 搭建odoo开发调试环境 htt ...
- C++:通过gethostbyname函数,根据服务器的域名,获取服务器IP
本代码的编译环境为MAC,系统版本为10.11.6: #include <string.h> #include <netdb.h> #include <stdio.h&g ...
- Socket编程实践(1) 基本概念
1. 什么是socket socket可以看成是用户进程与内核网络协议栈的编程接口.TCP/IP协议的底层部分已经被内核实现了,而应用层是用户需要实现的,这部分程序工作在用户空间.用户空间的程序需要通 ...
- 小猪cms命名规则整理
1.模板命名规则: 类名+函数名称+.html 2.Model命名规则: 数据库表名:cms_user_data 文件名称命名: UserDataModel.class.php <?php cl ...
- 【POJ-1390】Blocks 区间DP
Blocks Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5252 Accepted: 2165 Descriptio ...
- eclipse运行没问题,tomcat以脚本启动后插入数据库的中文会乱码
记一次部署工程的时候遇到的问题 部署war包到win7的时候发现,布上去后插入数据库的中文会乱码,然后发现用eclipse运行源码没问题,一开始以为是war打出来的时候编码错误,然后将eclipse的 ...
- JS 中如何将<br/> 替换成 /n
JS 中如何将<br/> 替换成 /n function a() { var data = "aaaa<br/>bbbb<br/>cccc"; ...
- substr()函数
substr 定义于头文件 <string> string substr (size_t pos = 0, size_t len = npos) const;复制子字符串,要求从指定位置开 ...
- UVA1637Double Patience(概率 + 记忆化搜索)
训练指南P327 题意:36张牌分成9堆, 每堆4张牌.每次拿走某两堆顶部的牌,但需要点数相同.如果出现多种拿法则等概率的随机拿. 如果最后拿完所有的牌则游戏成功,求成功的概率. 开个9维数组表示每一 ...
- ThinkPhp 3.2 数据的连贯操作
ThinkPHP模型基础类提供的连贯操作方法(也有些框架称之为链式操作),可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作. 使用也比较简单, 假如我们现在要查询一个User表 ...