Developing School's Contest 2012-2 by HUT :Bet
来源:互联网 发布:基金收益算法 编辑:程序博客网 时间:2024/04/29 17:44
Problem Description
Mirko doesn’t like Latin homeworks so he made a bet with Slavko. Loser will be writing homeworks for both of them the entire month. Mirko wants to win so he designed this problem they could have something to bet on.
At his desk he found a cube, with numbers 1 to 6 on its faces. Cube is shown on the picture. Additionally, sum of the numbers on opposing faces is equal to 7.
That means that 6 is on the opposite face of 1, 5 on the opposite of 2 and 4 on the opposite face of 3.
Mirko has put the cube in the upper left field of the matrix of R rows and C columns. The cube is initially oriented in a way that upper side is showing number 1, and side to the right number 3.
Mirko now makes te following moves:
1. He is rolling the cube to the right, until it reaches the last column
2. Then he rolls it down (to the next row)
3. Now he rolls the cube to the left, until it reaches first column
4. Like in step 2, he rolls it down (to the next row)
Mirko is repeating these steps for as long as he can, i.e. as long as he can roll the cube in the next row.
When a cube reaches some field, Mirko writes down the number on the top of the cube. In the end he sums all of the numbers he had written.
Mirko made a bet with Slavko that he could calculate that sum without error. Help Slavko verifying Mirko’s solution!
At his desk he found a cube, with numbers 1 to 6 on its faces. Cube is shown on the picture. Additionally, sum of the numbers on opposing faces is equal to 7.
That means that 6 is on the opposite face of 1, 5 on the opposite of 2 and 4 on the opposite face of 3.
Mirko has put the cube in the upper left field of the matrix of R rows and C columns. The cube is initially oriented in a way that upper side is showing number 1, and side to the right number 3.
Mirko now makes te following moves:
1. He is rolling the cube to the right, until it reaches the last column
2. Then he rolls it down (to the next row)
3. Now he rolls the cube to the left, until it reaches first column
4. Like in step 2, he rolls it down (to the next row)
Mirko is repeating these steps for as long as he can, i.e. as long as he can roll the cube in the next row.
When a cube reaches some field, Mirko writes down the number on the top of the cube. In the end he sums all of the numbers he had written.
Mirko made a bet with Slavko that he could calculate that sum without error. Help Slavko verifying Mirko’s solution!
Input
The input consists of multiple test cases.First and only line of input contains two positive integers. R and C (1 ≤ R, C ≤ 100 000), matrix dimensions.
Output
First and only line of input should contain the sum described in the task.
Sample Input
3 23 4737 296
Sample Output
1942763532
Source
2012暑假集训
//掷色子的问题,直接模拟就可,由于色子只要滚四次就有一个周期,所以在只要记录每一行最后色子的状态即可成功模拟。
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<cstdlib>#include<queue>#include<stack>#include<map>#include<vector>#include<algorithm>using namespace std;#define LL __int64LL a[10],b[10],n,m,ans;void solve_r() //向右{int tn=n,tm=m,i,k;ans+=tm/4*14;for(i=1;i<=(tm%4);i++)ans+=a[i];tm=(tm-1)%4;for(i=1;i<=6;i++)b[i]=a[i];for(i=1;i<=4;i++){k=(tm+i)%4;if(k==0)k=4;a[i]=b[k];}for(i=1;i<=6;i++)b[i]=a[i];}void solve_l() //向左{int tn=n,tm=m,i,k;ans+=tm/4*14;b[1]=a[1],b[2]=a[4],b[3]=a[3],b[4]=a[2];for(i=1;i<=(tm%4);i++)ans+=b[i];for(i=1;i<=6;i++)b[i]=a[i];tm=(tm-1)%4;for(i=1;i<=4;i++){k=(i-tm+4)%4;if(k==0)k=4;a[i]=b[k];}for(i=1;i<=6;i++)b[i]=a[i];}int main(){int i;while(~scanf("%I64d%I64d",&n,&m)){if((n%4==0)||(m%4==0)){ans=n*m/4*14;printf("%I64d\n",ans);continue;}ans=0;a[1]=1,a[2]=4,a[3]=6,a[4]=3,a[5]=2,a[6]=5;for(i=1;i<=n;i++){if(i&1){solve_r();a[1]=b[6],a[2]=b[2],a[3]=b[5]; //向下a[4]=b[4],a[5]=b[1],a[6]=b[3];}else{solve_l();a[1]=b[6],a[2]=b[2],a[3]=b[5];a[4]=b[4],a[5]=b[1],a[6]=b[3];}}printf("%I64d\n",ans);}return 0;}
- Developing School's Contest 2012-2 by HUT :Bet
- Developing School's Contest 2012-2 by HUT:数字游戏
- Developing School's Contest 2012-2 by HUT :数字游戏续
- Developing School's Contest 2012-2 by HUT :DNA-AND-DNA
- hdu diy Developing School's Contest 2012-6 by SYU 优先队列排序问题
- School Team Contest #2 ABCEH 解题报告
- S-Ride to School
- A Contest to Celebrate Girlfriend's Birthday by Staginner
- Saratov School Regional Team Programming Contest 2011
- 【Codeforces】School Regional Team Contest, Saratov, 2011
- Roy's Personal Developing Environment
- Codeforces Round #400 (Div. 1 + Div. 2, combined) 776F. Sherlock's bet to Moriarty(待翻译)
- Andrew Stankevich's Contest #2 Solution
- ACdream Andrew Stankevich's Contest (2) 哈夫曼树
- developing project by JetSpeed2 , Spring and Hinberate
- HDU HDU 3861 The King’s Problem 2011 Multi-University Training Contest 3 - Host by BIT
- 2011 Multi-University Training Contest 1 - Host by HNU&&YY's new problem
- Moonfang's Birthday&&2011 Multi-University Training Contest 3 - Host by BIT
- poj 3207 Ikki's Story IV - Panda's Trick#2-sat
- ios cocoa 提取路径中的文件名
- lotus文件上传中对文件的格式和大小的判断和限制
- [游泳] 全浸式游泳呼吸法
- 【WinForm】窗口跳轉
- Developing School's Contest 2012-2 by HUT :Bet
- 地理位置定位
- 在字符串中删除特定的字符(字符串)。
- TCP/IP三次握手协议
- 优化mysql中where or和where in语句的效率
- Objective-C研究院之数组对象(七)
- TCP/IP 三次握手及状态变迁图
- 第1个人10,第2个比第1个人大2岁,依次递推,用递归方式计算出第8个人多大?
- 数据模型概述-PD下画E-R图