Day 1 模拟
1. P1088 火星人
利用STL中的next_permutation();函数求一种排列的下一种排列,循环m次即为答案。(STL大法好~~C++是世界上最好的语言~~逃
#include <cstdio>
#include <algorithm>
using namespace std;
const int MAXN = ;
int n, m, s[MAXN];
int main()
{
scanf("%d%d", &n, &m);
for(int i = ; i <= n - ; ++i)
scanf("%d", &s[i]);
for(int i = ; i <= m; ++i)
next_permutation(s, s + n);
for(int i = ; i <= n - ; ++i)
printf("%d ", s[i]);
return ;
}
2. P1015 回文数
将高精加推广到n进制即可,不再赘述,代码如下。高精 * 1
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAXL = ;
int n, ans;
string s1, map = "0123456789ABCDEF";
bool judge(string s1)
{
string s2 = s1;
reverse(s2.begin(), s2.end());
if(s1 == s2) return true;
else return false;
}
string add(string s1)
{
int a[MAXL], b[MAXL], c[MAXL], len = s1.size(), lenc = s1.size();
memset(a, , sizeof(a));
memset(b, , sizeof(b)); memset(c, , sizeof(c));
string s2 = s1, sum;
reverse(s2.begin(), s2.end());
for(int i = ; i <= len; ++i)
{
if(isdigit(s1[len - i])) a[i] = s1[len - i] - '';
else a[i] = s1[len - i] - 'A' + ;
if(isdigit(s2[len - i])) b[i] = s2[len - i] - '';
else b[i] = s2[len - i] - 'A' + ;
}
for(int i = ; i <= lenc; ++i)
{
c[i] += a[i] + b[i]; if(c[i] >= n)
{
c[i] %= n;
++c[i + ];
}
}
++lenc;
while(c[lenc] == && lenc > ) --lenc;
for(int i = lenc; i >= ; --i)
sum += map[c[i]];
return sum;
}
int main()
{
cin >> n >> s1;
for(int i = ; i <= ; ++i)
{
s1 = add(s1); if(judge(s1) == true)
{
cout << "STEP=" << i << endl;
return ;
}
}
cout << "Impossible!" << endl;
return ;
}
3. P1604 B进制星球
与上题基本同理。高精 * 2
#include <cstdio>
#include <cstring>
using namespace std;
const int MAXN = ;
int k, a[MAXN], b[MAXN], c[MAXN];
char s1[MAXN], s2[MAXN];
int max(int a, int b)
{
if(a >= b) return a;
return b;
}
int main()
{
scanf("%d%s%s", &k, s1, s2);
a[] = strlen(s1);
b[] = strlen(s2);
for(int i = ; i <= a[]; ++i)
{
if(s1[a[] - i] >= '' && s1[a[] - i] <= '')
a[i] = s1[a[] - i] - '';
else if(s1[a[] - i] >= 'A' && s1[a[] - i] <= 'Z')
a[i] = s1[a[] - i] - 'A' + ;
}
for(int i = ; i <= b[]; ++i)
{
if(s2[b[] - i] >= '' && s2[b[] - i] <= '')
b[i] = s2[b[] - i] - '';
else if(s2[b[] - i] >= 'A' && s2[b[] - i] <= 'Z')
b[i] = s2[b[] - i] - 'A' + ;
}
int len = max(a[], b[]);
for(int i = ; i <= len; ++i)
{
c[i] += a[i] + b[i];
if(c[i] >= k)
{
c[i] %= k;
++c[i + ];
}
}
++len;
while(c[len] == && len > ) --len;
for(int i = len; i >= ; --i)
{
if(c[i] <= )
printf("%c", char(c[i] + ''));
else if(c[i] >= )
printf("%c", char(c[i] - + 'A'));
}
return ;
}
4. P1402 乒乓球
字符串模拟,码农题。
#include <iostream>
using namespace std;
const int MAXN = ;
int now = , win[MAXN], w = , l = ;
char c;
int main()
{
for(int i = ; cin >> c && c != 'E'; ++i)
{
if(c == 'W') win[i] = ;
else if(c == 'L') win[i] = ;
}
for(int i = ; ; ++i)
{
if(win[i] == )
{
cout << w << ":" << l << endl;
w = ;
l = ;
break;
}
else if(win[i] == ) ++w;
else if(win[i] == ) ++l;
if((w - l >= || l - w >= ) && (w >= || l >= ))
{
cout << w << ":" << l << endl;
w = ;
l = ;
}
}
cout << endl;
for(int i = ; ; ++i)
{
if(win[i] == )
{
cout << w << ":" << l << endl;
w = ;
l = ;
break;
}
else if(win[i] == ) ++w;
else if(win[i] == ) ++l;
if((w - l >= || l - w >= ) && (w >= || l >= ))
{
cout << w << ":" << l << endl;
w = ;
l = ;
}
}
return ;
}
5. P1255 数楼梯
递推,第k阶的方法=第k-1阶+第k-2阶,其中k的数量比较大,需用高精。高精 * 3
#include <cstdio>
using namespace std;
const int MAXL = , MAXN = ;
int n, f[MAXN][MAXL];
int max(int a, int b)
{
if(a >= b) return a;
return b;
}
void add(int k)
{
int len = max(f[k - ][], f[k - ][]);
for(int i = ; i <= len; ++i)
{
f[k][i] += f[k - ][i] + f[k - ][i];
if(f[k][i] >= )
{
f[k][i] %= ;
++f[k][i + ];
}
}
++len;
while(f[k][len] == && len > ) --len;
f[k][] = len;
return ;
}
int main()
{
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
scanf("%d", &n);
if(n == || n == || n == )
{
printf("%d\n", f[n][]);
return ;
}
for(int i = ; i <= n; ++i)
add(i);
for(int i = f[n][]; i >= ; --i)
printf("%d", f[n][i]);
printf("\n");
return ;
}
6. P1192 台阶问题
和上一题差不多,只是每次上迈的阶数从2变为n,另外本题不用高精,答案%100003
#include <cstdio>
using namespace std;
const int MAXN = ;
int n, k;
long long f[MAXN];
int min(int a, int b)
{
if(a <= b) return a;
return b;
}
int main()
{
scanf("%d%d", &n, &k);
f[] = ;
f[] = ;
for(int i = ; i <= n; ++i)
for(int j = min(i, k); j >= ; --j)
{
f[i] += f[i - j];
if(f[i] >= ) f[i] %= ;
}
printf("%lld\n", f[n]);
return ;
}
By ZRQ
Day 1 模拟的更多相关文章
- App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
- Python 爬虫模拟登陆知乎
在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...
- HTML 事件(四) 模拟事件操作
本篇主要介绍HTML DOM中事件的模拟操作. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4. ...
- 模拟AngularJS之依赖注入
一.概述 AngularJS有一经典之处就是依赖注入,对于什么是依赖注入,熟悉spring的同学应该都非常了解了,但,对于前端而言,还是比较新颖的. 依赖注入,简而言之,就是解除硬编码,达到解偶的目的 ...
- webapp应用--模拟电子书翻页效果
前言: 现在移动互联网发展火热,手机上网的用户越来越多,甚至大有超过pc访问的趋势.所以,用web程序做出仿原生效果的移动应用,也变得越来越流行了.这种程序也就是我们常说的单页应用程序,它也有一个英文 ...
- javascript动画系列第一篇——模拟拖拽
× 目录 [1]原理介绍 [2]代码实现 [3]代码优化[4]拖拽冲突[5]IE兼容 前面的话 从本文开始,介绍javascript动画系列.javascript本身是具有原生拖放功能的,但是由于兼容 ...
- C++ 事件驱动型银行排队模拟
最近重拾之前半途而废的C++,恰好看到了<C++ 实现银行排队服务模拟>,但是没有实验楼的会员,看不到具体的实现,正好用来作为练习. 模拟的是银行的排队叫号系统,所有顾客以先来后到的顺序在 ...
- MSYS2——Windows平台下模拟linux环境的搭建
最近从MSYS1.0迁移到了MSYS2.0,简单讲,MSYS2.0功能更强大,其环境模拟更加符合linux.虽然本身来自cygwin,但其集成了pacman软件管理工具,很有linux范,并且可以直接 ...
- trigger事件模拟
事件模拟trigger 在操作DOM元素中,大多数事件都是用户必须操作才会触发事件,但有时,需要模拟用户的操作,来达到效果. 需求:页面初始化时触发搜索事件并获取input控件值,并打印输出(效果图如 ...
随机推荐
- Macroevolution|Silent changes|CNEs|Transposable elements|Neutral sites
Interspecies genomic comparison 因为脊椎动物诞生早,在演化过程中有Macroevolution(因为自然选择或遗传漂变导致持续突变同时表型发生改变),但是存在一种基因缺 ...
- 爬虫基本库request使用—爬取猫眼电影信息
使用request库和正则表达式爬取猫眼电影信息. 1.爬取目标 猫眼电影TOP100的电影名称,时间,评分,等信息,将结果以文件存储. 2.准备工作 安装request库. 3.代码实现 impor ...
- 897A. Scarborough Fair# 斯卡布罗集市(模拟)
题目出处:http://codeforces.com/problemset/problem/897/A 题目大意:将某个范围内的某个字符换成另外一个字符 #include<iostream> ...
- 系统学习Javaweb6----JavaScript2
感想:感觉自己还是只是学到皮毛,仍需继续努力,明天开始需要学习Android和阅读感想的书写. 学习笔记: 2.3.运算符 JavaScript运算符与java运算符基本一致. 这里我们来寻找不同点进 ...
- ORs-1-introduction
introduction: 1.Olfactory receptors (ORs)很重要 2.已知的ORs的分子结构,但仍存在没清楚的地方: Though the relationship betwe ...
- <USACO09DEC>视频游戏的麻烦Video Game Troublesの思路
emm今天模拟赛的题.神奇地A了 #include<cstdio> #include<cstring> #include<iostream> #include< ...
- Linux_实验1 Red Hat的使用
目录 使用rjxy用户登录图形界面 由当前控制台切换到tty4虚拟控制台: 由当前用户切换到root用户: 用root用户查看当前运行级别,并把当前运行级别切换到3级,再切换到5级运行级别: 用“ge ...
- spring mvc 设置@Scope("prototype")
spring中bean的scope属性,有如下5种类型: singleton 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例 prototype表示每次获得be ...
- 在python的web框架Django中使用SQL Server
在pycharm中安装 安装pyodbc和Django——pyodbc是一个用python写的ODBC引擎 安装Django-pyodbc-azure 在后方网址中查 ...
- JDBC介绍和Mybatis运行原理及事务处理
本博客内容非自创,转载自以下三位,侵删: https://juejin.im/post/5ab7bd11f265da23906bfbc5 https://my.oschina.net/fifadxj/ ...