目录

1.枚举-全排列

2.模拟-(3n+1)猜想

3.枚举-笨拙的手指

4.枚举-求质数的个数

5.枚举-最长不重复子序列

6.模拟-代码运行时间

7.模拟-快乐划拳

8.模拟-快乐求导


1.枚举-全排列

题目:把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。

输入格式:

一个整数 n。

输出格式:

按照从小到大的顺序输出所有方案,每行 1 个。

首先,同一行相邻两个数用一个空格隔开。

其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。

数据范围1≤n≤9

输入样例:

在这里给出一组输入。例如:

3

输出样例:

在这里给出相应的输出。例如:

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1 

源代码

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
#define maxn 1005
///回溯典型
int n,m;
int mem[maxn]={0};
int mark[maxn]={0};
void traceback(int pos)
{if(pos>n){for(int i=1;i<=n;i++){cout<<mem[i]<<" ";}cout<<endl;return ;}for(int i=1;i<=n;i++){if(mark[i]==1){continue;}mem[pos]=i;mark[i]=1;traceback(pos+1);mark[i]=0;}}int main()
{cin>>n;traceback(1);return 0;
}

2.模拟-(3n+1)猜想

题目:卡拉兹猜想: 对任何一个自然数n,如果它是偶数,那么就把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后在某一步得到n=1。 此处并非要求证明该定理,而是对于给定的任一个不超过1000的正整数n,简单的数一下,需要多少步才能得到n=1?

输入格式:

每个测试输入包含1个测试用例,即给出自然数n的值

输出格式:

输出从n计算到1需要的步数

输入样例:

在这里给出一组输入。例如:

3

输出样例:

在这里给出相应的输出。例如:

5

源代码

#include<iostream>using namespace std;
int main(){int n,step=0;cin>>n;while(n != 1){if(n%2 == 0){n = n/2;step++;}else{n = (3*n+1)/2;step++;}}cout<<step;return 0;
}

3.枚举-笨拙的手指

题目:奶牛贝茜正在学习如何在不同进制之间转换数字。

但是她总是犯错误,因为她无法轻易的用两个前蹄握住笔。

每当贝茜将数字转换为一个新的进制并写下结果时,她总是将其中的某一位数字写错。

例如,如果她将数字 14 转换为二进制数,那么正确的结果应为 1110,但她可能会写下 0110 或 1111。

贝茜不会额外添加或删除数字,但是可能会由于写错数字的原因,写下包含前导 0 的数字。

给定贝茜将数字 N 转换为二进制数字以及三进制数字的结果,请确定 N 的正确初始值(十进制表示)。

输入格式:

第一行包含 N 的二进制表示,其中一位是错误的。

第二行包含 N 的三进制表示,其中一位是错误的。

输出格式:

输出正确的 N 的值。0≤N≤10^9,且存在唯一解。

输入样例:

在这里给出一组输入。例如:

1010
212

输出样例:

在这里给出相应的输出。例如:

14

源代码:

#include<iostream>
#include<cstring>
#include <unordered_set>
using namespace std;
int get(string s,int b){int res =0;int len =s.size();for(int i=0;i<len;i++){int c =s[i]-'0';res =res*b+c;}return res;
}
int main(){string str,str1;cin>>str>>str1;unordered_set<int> S;int len1 =str.size();int len2 =str1.size();for(int i=0;i<len1;i++){str[i] =str[i]^1;S.insert(get(str,2));str[i] =str[i]^1;}for (int i = 0; i <len2; i ++ ){char c =str1[i];for(int j=0;j<3;j++){if(c!=j+'0'){str1[i] =j+'0';int ans =get(str1,3);if(S.count(ans)){cout<<ans<<endl;return 0;}}}str1[i] =c;}return 0;}

4.枚举-求质数的个数

题目:给定一个正整数 n,请你求出 1∼n 中质数的个数。

输入格式:

共一行,包含整数 n。

输出格式:

共一行,包含一个整数,表示 1∼n 中质数的个数。

输入样例:

在这里给出一组输入。例如:

8

输出样例:

在这里给出相应的输出。例如:

4

源代码:

#include<iostream>
using namespace std;
int ans;
bool isPrime(int a){
if(a<2) return false;
for(int i=2;i<=a/i;i++){
if(a%i==0)
return false;
}
return true;
}
int main(){
int n;
cin>>n;
for(int i=2;i<=n;i++){
if(isPrime(i))
ans++;
}
cout<<ans<<endl;
return 0;
}

5.枚举-最长不重复子序列

题目:给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。

输入格式:

第一行包含整数 n。 第二行包含 n 个整数(均在 0∼10^5范围内),表示整数序列。

输出格式:

共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。 数据范围1≤n≤10^5

输入样例:

在这里给出一组输入。例如:

5
1 2 2 3 5

输出样例:

在这里给出相应的输出。例如:

3

源代码:

#include<iostream>
using namespace std;
const int N=10010;
int n;
int a[N],b[N];int main()
{scanf("%d",&n);for(int i=0;i<n;i++) scanf("%d",&a[i]);int kes=0;for(int i=0,j=0;i<n;i++){b[a[i]]++;while(b[a[i]]>1){b[a[j]]--;j++;}kes=max(kes,i-j+1); }printf("%d",kes);return 0;
}

6.模拟-代码运行时间

题目:要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。 这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。 于是为了获得一个函数 f 的运行时间,我们只要在调用 f 之前先调用 clock(),获得一个时钟打点数 C1;在 f 执行完成后再调用 clock(),获得另一个时钟打点数 C2; 两次获得的时钟打点数之差 (C2-C1) 就是 f 运行所消耗的时钟打点数,再除以常数 CLK_TCK,就得到了以秒为单位的运行时间。 这里不妨简单假设常数 CLK_TCK 为 100。现给定被测函数前后两次获得的时钟打点数,请你给出被测函数运行的时间。

输入格式:

输入在一行中顺序给出 2 个整数 C1 和 C2。注意两次获得的时钟打点数肯定不相同,即 C1 < C2,并且取值在 [0,10^7]。

输出格式:

在一行中输出被测函数运行的时间。运行时间必须按照 hh:mm:ss(即2位的 时:分:秒)格式输出;不足 1 秒的时间四舍五入到秒。

输入样例:

在这里给出一组输入。例如:

123 4577973

输出样例:

在这里给出相应的输出。例如:

12:42:59

源代码:

#include<iostream>
#include<cstdio>
using namespace std;
const int CLK =100;
int main(){
int c1,c2;
scanf("%d%d",&c1,&c2);
int ans =c2-c1;
if(ans%100>=50){
ans =ans/CLK+1;
}
else{
ans =ans/CLK;
}
printf("%02d:%02d:%02d",ans/3600,ans%3600/60,ans%60);
return 0;
}

7.模拟-快乐划拳

题目:灰太狼和蕉太狼两兄弟过年相见,相约一起去喝酒。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。 如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。 下面给出灰太狼和蕉太狼两兄弟的划拳记录,请你统计他们最后分别喝了多少杯酒。

输入格式:

每个测试输入包含1个测试用例,即给出自然数n的值。

输出格式:

输入第一行先给出一个正整数 N(≤100),随后 N 行,每行给出一轮划拳的记录,格式为: 灰太狼喊 灰太狼划 蕉太狼喊 蕉太狼划 其中喊是喊出的数字,划是划出的数字,均为不超过 100 的正整数(两只手一起划)。

输入样例:

在这里给出一组输入。例如:

5
8 10 9 12
5 10 5 10
3 8 5 12
12 18 1 13
4 16 12 15

输出样例:

在这里给出相应的输出。例如:

1 2

 源代码:

#include <cstdio>
int main()
{int n;scanf("%d", &n);int a[2], b[2];int counta = 0, countb = 0;for(int i = 0; i < n; i++){scanf("%d%d%d%d", &a[0], &a[1], &b[0], &b[1]);int temp = a[0] + b[0];if(a[1] == temp && b[1] == temp){continue;}if(a[1] == temp){counta++;}if(b[1] == temp){countb++;}}//以上计算的获胜次数,罚酒是要对方罚printf("%d %d\n", countb, counta);return 0;
}

8.模拟-快乐求导

题目:求解一元多项式的导数。

输入格式:

以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。

输出格式:

以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。 注意“零多项式”的指数和系数都是 0,但是表示为 0 0。

输入样例:

在这里给出一组输入。例如:

3 4 5 6

输出样例:

在这里给出相应的输出。例如:

30 5 12 3

 源代码:

#include <iostream>
using namespace std;
int main()
{int count = 0;int x, n;while(cin >> x >> n){if (count == 0){if (n != 0){cout << x*n << " " << n-1;}else{   /* 如果一开始输入的就是0次多项式 */cout << "0 0";}count ++;}else{if (n != 0){  /* 0次多项式求导会消失,只需要对不为0的多项式进行操作即可 */cout << " " << x*n << " " << n-1;}}} return 0;
}
#include<stdio.h>int main()
{char ch = 0;int fac[1000] = {},exp[1000] = {};int i = 0,count = 0;do{scanf("%d %d",&fac[i],&exp[i]);i++;}while((ch = getchar()) != '\n');for(int j = 0 ; j < i;j++ ){if(j < i-1){if(exp[j] &&  0 != exp[j+1]){printf("%d ",fac[j] * exp[j]);printf("%d ",exp[j] -1);}else if(exp[j] && 0 == exp[j+1]){printf("%d ",fac[j] * exp[j]);printf("%d",exp[j] -1);}}else if(j == i -1 && 0 != i-1){if(exp[j]){printf("%d ",fac[j] * exp[j]);printf("%d",exp[j] - 1);}}else{if(exp[j]){printf("%d ",fac[j] * exp[j]);printf("%d",exp[j] - 1);}else{printf("0 0");      }}}return 0;
}

PTA枚举和模拟类型八道题型相关推荐

  1. jdk1.5新特性5之枚举之模拟枚举类型

    一 简单应用 package cn.xy.Enum; public enum TrafficLamp {  RED,GREEN,YELLOW; } TrafficLamp red = TrafficL ...

  2. 这八道经典指针笔试题你都会做嘛?

    本文详细介绍了八大指针经典笔试题,内涵盖指针大部分的用法, 全部了解掌握其原理之后对指针的学习大有帮助!!! 对指针掌握 也就掌握了内存,C语言也就没有什么更绕的了 详解八道经典指针笔试题 一.八道经 ...

  3. Day9-2021.1.17-剑指offer的八道二叉树题目的整理。涉及递归调用+广度优先遍历。

    2021年1月17日 时间都去哪了? 今日计划: 1.小学初中的辅导.任务已被安排~ 2.组会 3.剑指offer的二叉树题目 4.图解tcp ip 的内容 今日工作: 1.小学初中的辅导.任务已被安 ...

  4. 在计算机的通信子网中 其操作方式有两种,全国自考计算机网技术模拟试卷(八)及答案.doc...

    全国自考计算机网技术模拟试卷(八)及答案 更多优质自考资料,请访问自考乐园俱乐部/club/5346389 2010年全国自考计算机网络技术模拟试卷(八) 一.单项选择题(本大题共20小题,每小题1分 ...

  5. mysql 张三的语文成绩_八道 经典的 MYSQL 面试题目(有答案)

    八道 经典的 MYSQL 面试题目(有答案) ***答案统一在 最下面哦*** (1)表名:购物信息 购物人 商品名称 数量 A 甲 2 B 乙 4 C 丙 1 A 丁 2 B 丙 5 -- (其他用 ...

  6. c语言遍历枚举,C# Enum 类型遍历

    void Main() { new EnumForeach().Foreach(); } public class EnumForeach { public void Foreach() { fore ...

  7. 正则表达式八道练习题

    正则表达式八道练习题: Linux:运维正则表达式练习题: 1.显示/etc/passwd文件中以bash结尾的行 2.显示/etc/passwd文件中的两位数或三位数 3.显示`ss -ant`命令 ...

  8. 计算机网络应用模拟试卷,《计算机网络应用基础》模拟试卷(八)(附答案)

    <计算机网络应用基础>模拟试卷(八)(附答案) 一.是非题(每题2分,共20分.正确的在括号内划√,错的划×,并说明判断的理由.) ()1.城域网采用LAN技术. ()2.帧中继的设计主要 ...

  9. 瞎说八道之更换手机的成本

    现在手机越来越便宜,换手机是比较常见的一件事,所以各大厂商为了降低更换手机的成本,也是各种手段费尽心思:一键换机.云账号...但是这些方式都建立在一个基础上,就是同品牌手机才能用.如果是跨品牌换机,那 ...

最新文章

  1. Mac上Homebrew的使用
  2. linux shell 按行 逐行 读取文件
  3. arcgis设置nodata值_新版白话空间统计(6):在ArcGIS中实现莫兰指数计算
  4. 计算机入会大会新生发言稿,新生大会发言稿(精选3篇)
  5. 启动欢迎页面时,Android Studio设置全屏Activity
  6. hadoop3.1.2版本中FsImage与Editslog合并解析
  7. 立足于飞秋和即时通讯软件市场
  8. 例子---PHP与Form表单前导篇
  9. 计算机可视化仿真技术opengl,基于OpenGL的三维场景可视化仿真
  10. python def main好处_python中 __name__及__main()__的妙处
  11. Google Chrome浏览器离线安装包下载方法
  12. 应用Dubbo框架打造仿猫眼项目 理解微服务核心思想
  13. A4纸在屏幕上的像素尺寸
  14. 2016届腾讯实习生招聘上海站回忆版
  15. 服务认证的介绍-实施依据及作用
  16. 职高学计算机走单招是什么意思,职高计算机对口单招
  17. 腾讯、美团通报反腐情况;马斯克回应:涨价也没人补差价;滴滴出行恢复新用户注册 | EA周报...
  18. 使用Java在浏览器页面无法导出excel表格
  19. 论文笔记-2019-ImageNet-trained CNNs are biased towards texture; increasing shape bias improves accuracy
  20. 月费99,融资过亿,这个老阿里人做出了便利店式健身房

热门文章

  1. 华为云挂载盘配置挂载
  2. 2018山东计算机录取分数,【分数线】2018山东省公费师范生分数线汇总
  3. 如何搭建简易蓝牙定位系统
  4. NC发布webservice接口
  5. APS的主要功能有哪些?你了解吗?
  6. 什么是udp攻击?udp攻击的基本原理是什么
  7. B2C电子商务基础系统架构解析
  8. c语言如何输入一篇英文文章,(急急,救命啊!c语言)输入一篇英语文章,求输出这篇文章的所有英语单词的个数。...
  9. css左侧盒子固定右边自适应
  10. 学计算机用锐龙,开学装机:3000元AMD锐龙5,2400G核显电脑配置推荐