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 模拟的更多相关文章

  1. App开发:模拟服务器数据接口 - MockApi

    为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...

  2. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  3. Python 爬虫模拟登陆知乎

    在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...

  4. HTML 事件(四) 模拟事件操作

    本篇主要介绍HTML DOM中事件的模拟操作. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4.  ...

  5. 模拟AngularJS之依赖注入

    一.概述 AngularJS有一经典之处就是依赖注入,对于什么是依赖注入,熟悉spring的同学应该都非常了解了,但,对于前端而言,还是比较新颖的. 依赖注入,简而言之,就是解除硬编码,达到解偶的目的 ...

  6. webapp应用--模拟电子书翻页效果

    前言: 现在移动互联网发展火热,手机上网的用户越来越多,甚至大有超过pc访问的趋势.所以,用web程序做出仿原生效果的移动应用,也变得越来越流行了.这种程序也就是我们常说的单页应用程序,它也有一个英文 ...

  7. javascript动画系列第一篇——模拟拖拽

    × 目录 [1]原理介绍 [2]代码实现 [3]代码优化[4]拖拽冲突[5]IE兼容 前面的话 从本文开始,介绍javascript动画系列.javascript本身是具有原生拖放功能的,但是由于兼容 ...

  8. C++ 事件驱动型银行排队模拟

    最近重拾之前半途而废的C++,恰好看到了<C++ 实现银行排队服务模拟>,但是没有实验楼的会员,看不到具体的实现,正好用来作为练习. 模拟的是银行的排队叫号系统,所有顾客以先来后到的顺序在 ...

  9. MSYS2——Windows平台下模拟linux环境的搭建

    最近从MSYS1.0迁移到了MSYS2.0,简单讲,MSYS2.0功能更强大,其环境模拟更加符合linux.虽然本身来自cygwin,但其集成了pacman软件管理工具,很有linux范,并且可以直接 ...

  10. trigger事件模拟

    事件模拟trigger 在操作DOM元素中,大多数事件都是用户必须操作才会触发事件,但有时,需要模拟用户的操作,来达到效果. 需求:页面初始化时触发搜索事件并获取input控件值,并打印输出(效果图如 ...

随机推荐

  1. 阿里OSS下载文件,提示The request signature we calculated does not match the signature you provided. Check your key and signing method

    提示说是签名不对,但没搞懂签名具体是啥,以为之前做过,有正确的,就一点点比对,最后发现竟然是下载的文件路径,里面必须是/,而不能是\或\\,搞得我哭笑不得.比如,要下载的文件路径是:soft/cszt ...

  2. 关于前端Dom的总结

    简介 DOM (Document Object Model) 文档对象模型 DOM思想使用节点树(node tree)的概念来描述一个HTML页面,页面中的每一个元素.属性.文本都被认为是节点.此外, ...

  3. Java线程池面试

    New Thread的弊端 每次new Thread会新建对象,性能差 线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多系统资源导致死机或OOM 缺少更多功能,如更多执行.定期执行.线 ...

  4. rest framework-版本-长期维护

    ###############  版本   ############### # # 版本的问题: # rest_framework.versioning.URLPathVersioning # 一般就 ...

  5. Codeforces1301D Time to Run

    (搬运一下部分官方题解) Description link 或者洛谷link 到时候就有中文翻译了,不过这个题机翻没毛病 Solution 首先这是一道模拟题-- 不要管题目中的循环移动的问题,直接按 ...

  6. MySQL表查询

    单表查询 表准备 create table emp( id int not null unique auto_increment, name ) not null, sex enum('male',' ...

  7. iOS 开发中有关pch文件,以及pch常用的内容

    一.创建pch文件.点击command+N.如下图操作 命名规则一般都是:项目名称-Prefix 第二步 OK,到这里已经把pch文件制作完毕.接下来就可以用了. pch文件一般书写的是全局都可以用到 ...

  8. SLIQ/SPRINT

    SLIQ/SPRINT */--> SLIQ/SPRINT Before SLIQ, most classification alogrithms have the problem that t ...

  9. java开发环境搭建(jdk安装)和经常出现问题的探讨

    面对许多java初学者环境搭建出现的问题 第一步: 1,首先在可以百度jdk进入oracle的官网也可以进入这个网站 https://www.oracle.com/technetwork/java/j ...

  10. Robustness|Variability|Diversification|Complexity|自组装|

    生命组学 进化方向有以下四个特性:Robustness:变稳定,比如杀虫剂最大浓度也有杀不死的虫子.Variability易变性与Diversification多样性,容易变多和变多.Complexi ...