[2017.9.16]队内胡策 Day 1

这篇博客记录了赛小城遇到的四个趣味问题:与朋友玩骰子游戏,解决扫雷游戏的不同布局,学习游泳时遇到的路径排序挑战,以及在数学课上解答的寻找完全平方数问题。通过模拟、递推、最短路径模板和数论方法,赛小城逐一解决了这些问题。
摘要由CSDN通过智能技术生成

T1:

Problem 1 赛小城玩骰子

题目描述

众所周知,a和赛小城关系很好,赛小城经常与a交(gao)流(shi),今天一早,赛小城突发奇想,要和a玩骰子。
赛小城有一个骰子,如图1所示:
图1
数字1在上方,数字2在South(南)方位,数字3在East(东)方位,每一对相反方位的数字之和是7,按照上述.数字5在North(北)方位,数字4在west(西)方位,数字6在下方,如图l所示.数字4,5,6在图1中是看不到的。
骰子的初始位置如图1所示.按照下列 6条规则旋转骰子,规则如图2和图3所示:
图2
图2中所示的4条旋转规则是将骰子按照规则指定的方位旋转90度。图3中所示的2条旋转规则是将骰子沿水平方向分别向left(左)或Right(右)方位旋转90度
图3
图3.旋转规则Left(左)、Right(右)

a想知道,从图1所示的方位开始,根据给定的一系列规别连续的旋转骰子.在该过程中位于上方的数字之和(其中包括图1所示的初始方位上的数字1),赛小城被a的问题难住了,于是他向学习OI的你求助,你能帮帮他吗?

输入描述
第一行输入一个整数n,表示执行旋转的总步数。
第2~n-1行分别输入6条旋转规则中6个方位中的一个

输出描述
一行输出旋转过程中位于骰子上方的数字之和

样例输入

5
North
North
East
South
West

样例输出
21
数据范围及提示
对于100 %的数据 n≤1000


按题意模拟就好。我想多了,打的时候想弄出个骰子来,结果越弄越乱,胡搞了两个小时。

正解:

模拟。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<string>
#include<queue>
#include<cstdlib>
using namespace std;
const int max=0;
int m,n,k,tot,ans=1,UP=1,DOWN=6,FRONT=2,BACK=5,LEFT=4,RIGNT=3;

inline int read()
{
    int num;
    char ch;
    while((ch=getchar())<'0'||ch>'9');
    num=ch-'0';
    while((ch=getchar())>='0'&&ch<='9') num=num*10+ch-'0';
    return num;
}

inline void out(int x)
{
    if(x>=10) out(x/10);
    putchar(x%10+'0');
    return;
}

int main()
{
    freopen("touzi.in","r",stdin);
    freopen("touzi.out","w",stdout);
    n=read();
    char c;
    wh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值