SRM482
250pt
题意:给定n把锁,第i轮每间隔i个打开一个木有打开的。问最后打开的事几
思路:直接vector模拟
code:
#line 7 "LockersDivOne.cpp"
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <fstream>
#include <numeric>
#include <iomanip>
#include <bitset>
#include <list>
#include <stdexcept>
#include <functional>
#include <utility>
#include <ctime>
using namespace std; #define PB push_back
#define MP make_pair #define REP(i,n) for(i=0;i<(n);++i)
#define FOR(i,l,h) for(i=(l);i<=(h);++i)
#define FORD(i,h,l) for(i=(h);i>=(l);--i) typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<double> VD;
typedef long long LL;
typedef pair<int,int> PII; class LockersDivOne
{
public:
int get(int n){
vector<int> a, b;
for (int i = ; i < n; ++i)
a.push_back(i);
int res = ;
for (int i = ; ; ++i){
if (a.size() == ) break;
b.clear();
for (int j = ; j < a.size(); j++)
if (j % i == ) res = a[j] + ;
else b.push_back(a[j]);
a = b;
}
return res; }
int lastOpened(int N)
{
return get(N);
}
};
500pt
题意:A和B两个人玩汉诺塔,其中A移动汉诺塔用最快的方法,移动的步数是2^n-1步,而B用的方法可以保证每种状态恰好被访问到一次,移动的步数是3^n-1。两个人移动的伪代码都给定,问第一个人移动K步后的configuration,按照第二个人的方法需要移动多少步。
思路:先算出最终的状态。然后根据最终的状态用递归算出答案。
code:
#line 7 "HanoiGoodAndBad.cpp"
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <fstream>
#include <numeric>
#include <iomanip>
#include <bitset>
#include <list>
#include <stdexcept>
#include <functional>
#include <utility>
#include <ctime>
using namespace std; #define PB push_back
#define MP make_pair #define REP(i,n) for(i=0;i<(n);++i)
#define FOR(i,l,h) for(i=(l);i<=(h);++i)
#define FORD(i,h,l) for(i=(h);i>=(l);--i) typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<double> VD;
typedef long long LL;
typedef pair<int,int> PII;
int thr[]; class HanoiGoodAndBad
{
public:
int dd, ans;
int H[][];
int top[];
void solve_Dave(int a, int c, int b, int n){
if(n > ){
if (dd == ) return;
solve_Dave(a, b, c, n-);
if (dd == ) return;
H[c][++top[c]] = n;
H[a][top[a]--] = ;
--dd;
solve_Dave(b, c, a, n-);
}
}
void solve_Earl(int a, int c, int b, int n){
if (n == ) return;
int P = ;
if (H[][top[]] == n) P = ;
if (H[][top[]] == n) P = ;
top[P]--;
if (P == c){
ans += * thr[n-];
solve_Earl(a, c, b, n-);
}
if (P == b){
ans += thr[n-];
solve_Earl(c, a, b, n-);
}
if (P == a) solve_Earl(a, c, b, n-);
}
int moves(int N, int Dave)
{
dd = Dave;
memset(top, , sizeof(top));
memset(H, , sizeof(H));
for (int i = N; i >= ; --i) H[][++top[]] = i;
solve_Dave(, , , N);
ans = ;
for (int i = ; i < ; ++i)
for (int j = ; j <= top[i]/ ; ++j)
swap(H[i][j], H[i][top[i]-j+]);
thr[] = ;
for (int i = ; i <= ; ++i) thr[i] = thr[i-] * ;
solve_Earl(, , , N);
return ans;
}
};
SRM482的更多相关文章
随机推荐
- 前端面试问题css汇总
1,行内元素有哪些?块级元素有哪些?空元素有哪些?CSS的盒模型? 块级元素:div p h1 h2 h3 h4 form ul li 行内元素: a b br i span input select ...
- Taxi
/* After the lessons n groups of schoolchildren went outside and decided to visit Polycarpus to cele ...
- CSS中(font和background)的简写形式
转自:http://blog.csdn.net/shenzhennba/article/details/7356095 1.字体属性主要包括下面几个:font-family(字体族): “Arial” ...
- c++文件的输入输出
emmm,错误地方还请指出(以下代码复制粘贴会报错,我用codeblocks测试过,不知道为什么qaq) 头文件#include < fstream > 这里ofstream是" ...
- Python之路(第二十六篇) 面向对象进阶:内置方法
一.__getattribute__ object.__getattribute__(self, name) 无条件被调用,通过实例访问属性.如果class中定义了__getattr__(),则__g ...
- android模拟器不能上网设置
进行sdk目录中的platform-tools目录: adb devices 系统会罗列出所有设置 adb -s emulator- shell 最后设置网关 setprop net.dns1 192 ...
- Activiti5 添加/查询审批批注(审批意见)
Activiti5 添加/查询审批批注 Activiti 工作流开发,23张表中,act_hi_commit 中,用于保存流程审核的批注信息: 调用: taskServer.addComment ...
- ubuntu安装rubyOnRails
https://gorails.com/setup/ubuntu/16.04#ruby-rbenv 文章很详细
- django之补充
一 QuerySet类型 QuerySet类型:只和orm有关,如果一涉及数据库,就会有QuerySet类型的出现. QuerySet切片操作:QuerySet是支持切片操作的,不过不能放负数.查询集 ...
- 利用cglib包实现Spring中aop的<aop:advisor>功能
一:前言 还有<aop:before>/<aop:after>/<aop:around>的没有实现,不过根<aop:advisor>是差不多的,就是要额 ...