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

Problem Description
Recently, paleoanthropologists have found historical remains on an island in the Atlantic Ocean. The most inspiring thing is that they excavated in a magnificent cave and found that it was a huge tomb. Inside the construction,researchers identified a large number of skeletons, and funeral objects including stone axe, livestock bones and murals. Now, all items have been sorted, and they can be divided into N types. After they were checked attentively, you are told that there areAi items of the i-th type. Further more, each item of the i-th type requires Bi million dollars for transportation, analysis, and preservation averagely. As your job, you need to calculate the total expenditure.
 
Input
The first line of input contains an integer T which is the number of test cases. For each test case, the first line contains an integer N which is the number of types. In the next N lines, the i-th line contains two numbers Ai and Bi as described above. All numbers are positive integers and less than 101.
 
Output
For each case, output one integer, the total expenditure in million dollars.
 
Sample Input
1
2
1 2
3 4
 
Sample Output
14
 
Source
 
Recommend
jiangzijing2015   |   We have carefully selected several similar problems for you:  5994 5993 5992 5991 5990 
思路:第一题很简单,求费用,把每次的乘积都加起来就行了。
#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

Problem Description
The Pocket Cube, also known as the Mini Cube or the Ice Cube, is the 2 × 2 × 2 equivalence of a Rubik’s Cube.
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.
 
Input
The first line of input contains one integer N(N ≤ 30) which is the number of test cases.
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 |
+ - + - +
Output
For each test case, output YES if can be restored in one step, otherwise output NO.
 
Sample Input
4 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 6 6 6 6 6 6 1 1 1 1 2 2 2 2 3 3 3 3 5 5 5 5 4 4 4 4 1 4 1 4 2 1 2 1 3 2 3 2 4 3 4 3 5 5 5 5 6 6 6 6 1 3 1 3 2 4 2 4 3 1 3 1 4 2 4 2 5 5 5 5 6 6 6 6
 
Sample Output
YES YES YES NO
 
Source
 
Recommend
jiangzijing2015   |   We have carefully selected several similar problems for you:  5994 5993 5992 5991 5990 
思路:在比赛的时候理解错意思了,以为是判断能不能复原模仿,而没看到只需要一步。
魔方是2*2的,有三种转的方法,上面顺时针转90度,逆时针转,前面顺时针,前面逆时针,左边顺时针(相当于右边顺时针),左边逆时针(相当于左边逆时针)
还有再加上不操作算是一种,总共七种类,模拟出来就行了。
 #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

Problem Description
Let’s talking about something of eating a pocky. Here is a Decorer Pocky, with colorful decorative stripes in the coating, of length L.
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.
 
Input
The first line of input contains an integer N which is the number of test cases. Each of the N lines contains two float-numbers L and d respectively with at most 5 decimal places behind the decimal point where 1 ≤ d, L ≤ 150.
 
Output
For each test case, output the expected number of times rounded to 6 decimal places behind the decimal point in a line.
 
Sample Input
6
1.0 1.0
2.0 1.0
4.0 1.0
8.0 1.0
16.0 1.0
7.00 3.00
 
Sample Output
0.000000
1.693147
2.386294
3.079442
3.772589
1.847298
 
Source
 
Recommend
jiangzijing2015   |   We have carefully selected several similar problems for you:  5994 5993 5992 5991 5990 
思路:说实话比赛的时候根本不知道怎么做出来的。
好久之后才队友想起来,输出了一下log2,突然发现了规律。
赛后看别的队,一看0.693147就知道log2了,这就是做题多了有经验了啊。
但当时说的题解好像是求微积分,还是求导呢,把公式推导出来的。。。
 #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青岛区域赛题解的更多相关文章

  1. 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 ...

  2. 2016青岛区域赛.Coding Contest(费用流 + 概率计算转换为加法计算)

    Coding Contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  3. ACM/ICPC2016 青岛区域赛

    A(hdu5982).(模拟) 题意:输入n对数,将每对数相乘并相加 分析:模拟 B(hdu5983).(模拟) 题意:给你一个二阶魔方,问能否通过一次旋转使得给定魔方的每个面颜色相同 分析:模拟 C ...

  4. 2016ACM-ICPC Qingdao Online青岛网络赛题解

    TonyFang+Sps+我=5/12 滚了个大粗 2016年9月21日16:42:36 10题完工辣 01 题意:求形同的数中大于n的最小值 题解:预处理所有的(5194个),在这里面二分 #inc ...

  5. 2016 年 ACM/ICPC 青岛区域赛 Problem C Pocky

    昨晚乱入学弟的训练赛,想了一下这个题.推导的过程中,加深了对公理化的概率论理解.$\newcommand{\d}{\mathop{}\!\mathrm{d}}$ 解法一 考虑 $ d < L$ ...

  6. 2018 ACM-ICPC南京区域赛题解

    解题过程 开场开A,A题shl看错题意,被制止.然后开始手推A,此时byf看错E题题意,开始上机.推出A的规律后,shl看了E题,发现题意读错.写完A题,忘记判断N=0的情况,WA+1.过了A后,sh ...

  7. Tournament ZOJ - 4063 (青岛区域赛 F 打表)

    打表题.. 规律是找出来了 奈何优化不了 .... #include <iostream> #include <cstdio> #include <sstream> ...

  8. UVALive - 7740 Coding Contest 2016 青岛区域赛 (费用流)

    题意:每个点i有\(s_i\)个人和\(b_i\)份食物,每个人都要找到一份食物.现在有M条有向边,从点i到点j,容量为c,第一次走过不要紧,从第二次开始就要承担\(p(0<p<1)\)的 ...

  9. 第42届亚洲区域赛青岛站(2017icpc青岛)经验总结以及一些感想

    上一次写这种东西还是天梯赛,当时打完心里也是挺激动的,然后我们队也没有去参加省赛,但是过了一段时间我还是从那里面恢复了出来.因为我当时确实还是很菜的,当时连个暴力都不会,看着自己仅过的那些百度的题目确 ...

随机推荐

  1. C#中Abstract和Virtual的区别

    c# 中 Abstract和Virtual比较容易混淆,都与继承有关,并且涉及override的使用.下面讨论一下二者的区别: 一.Virtual方法(虚方法) virtual 关键字用于在基类中修饰 ...

  2. MYSQL的大数据量情况下的分页查询优化

    最近做的项目需要实现一个分页查询功能,自己先看了别人写的方法: <!-- 查询 --> <select id="queryMonitorFolder" param ...

  3. MVC中得到成员元数据的Description特性描述信息公用方法

    #region 从类型成员获取指定的Attribute T特性集合 /// <summary> /// 从类型成员获取指定的Attribute T特性集合 /// </summary ...

  4. Android源码——应用程序的消息处理机制

    Android应用程序在启动每个线程时,都会创建一个消息队列.线程的生命周期分为创建消息队列和进入消息循环两个阶段. 消息循环分为:发送消息和处理消息. Android系统主要通过MessageQue ...

  5. 小尝试一下 cocos2d

    好奇 cocos2d 到底是怎样一个框架,正好有个项目需要一个游戏框架,所以稍微了解了一下.小结一下了解到的情况. 基本概念 首先呢,因为 cocos2d 是基于 pyglet 做的,你完全可以直接用 ...

  6. Unity 组件不常用知识备注

    Rigidbody(刚体) Interpolate:当物体进行不规则移动时,通过上一帧的行为来进行平滑移动 Extrapolate:通过推算下一帧的行为来进行平滑移动 PhysicMaterial(物 ...

  7. 关于ACM的总结

    看了不少大神的退役帖,今天终于要本弱装一波逼祭奠一下我关于ACM的回忆. 从大二上开始接触到大三下结束,接近两年的时间,对于大神们来说两年的确算不上时间,然而对于本弱来说就是大学的一半时光.大一的懵懂 ...

  8. Selenium+python 配置

    1. 安装python, www.python.org. 下载最新的python,应该是32位的.注意配置环境变量. 2. 安装PIP(pip是一个以Python计算机程序语言写成的软件包管理系统). ...

  9. UP Board 人若有大胆,板子就很惨:首次上电开机失败

    前言 原创文章,转载引用务必注明链接. 注意:拍照自带抖动功能,画质大家凑合着看.冬日天气干燥,手触摸板子前建议流水洗手或者握持大体积导电体将静电放走. 本文使用Markdown写成,为获得更好的阅读 ...

  10. Java之使用Hadoop探索大数据的世界

    什么是大数据 PB = 1024tb 7123913827189tb Reids 无共享 HDFS 优点 :特别适合存储大型文件 TFS hdfs 架构 NameNode: 整个hadoop总管,只有 ...