P7960 [NOIP2021] 报数】的更多相关文章

禁止报的数的生成规则与埃式筛法类似,考虑用筛法预处理可以报出的数字列表和不可报出的数字,从而 O(1) 回答每一组询问. 用check函数判断数字中是否含有7,用nx[i]记录数字i的下一个合法数. 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1e7+10; 4 int T,ls; 5 int f[N],nx[N]; 6 7 bool check(int x){//判断是否含有数字7 8 while(x){ 9…
输入1个数字和多个字符,中间均以空格隔开.假设数字取值为m(范围1~9),后面字符个数为n.假设n个字符围成一圈,从第一个字母开始循环报数,当数到m以后,第m个字母就出列,直到这n个字母全部出列.最后,按照出列的顺序输出这些字母,中间仍以空格隔开.取值范围:m为1到9, 字符个数n大于1小于20. 网上很多方法感觉好乱,很多所谓的Java都是根据c的思想完成的没有Java的灵活性. 附代码: import java.util.*; public class Recycle { static Sc…
1.  报数游戏 问题描述: 设有N 个人围坐一圈并按顺时针方向从1 到N 编号,从第S个人开始进行1 到M报数,报 数到第 M个人时,此人出圈,再从他的下一个人重新开始1 到 M的报数,如此进行下去直 到所有的人都出圈为止.现要打印出出圈次序. 要求实现函数: void circle_sort (int n, int s, int m, int *p) 输入:n 游戏总人数  s 报数的起始编号  m 报数的数值 输出:p 指向长度为n的数组,出圈次序保存在 p指向的数组中 示例 n=7 s=…
题目链接:http://poj.org/problem?id=3750 约瑟夫问题,直接模拟即可. #include <iostream> #include <string> using namespace std; ; int main() { char ch; int i, n, w, s, num[maxn]; string per[maxn]; while (scanf("%d", &n) != EOF) { ; i < n; i++) {…
题目标题:围圈报数(谌海军) 题目描述:有n(n<=100)围成一圈,顺序排号(从1排到n).从第一个人开始报数(从1报到m(m<=9)),凡报到m的人退出圈子,问最后留下的是原来第几号的那位? 输入描述:输入为两个正整数,第一个<=100,第二个<=9: 输出描述:输出为一个正整数: 样式输入:100 3 样式输出:91 编写代码: #include <stdio.h> int main() { , cnt = , a[] = {}; scanf("%d%d…
样例输入3  输出2 输入100   输出91 代码及分析: #include<stdio.h> int main() { int i,n,N,out,a[1000]; out=i=n=0; //用out记录退出圈子的人,初始化0: printf("输入约瑟夫圈大小"); scanf("%d",&N); for(i=0;i<N;i++) //用N个数的数组保持N个人,并讲该数组全部初始化1,用以记录第N-1个人在圈外还是圈内(1则圈内,0则…
这是一道华为的机试题,后来才知道也叫约瑟夫问题,题目是这样的:有n个人围成一圈,玩一个游戏,规则为将该n个人编号为1,2,......n, 从编号为1的人开始依次循环报数,报道第m的时候将第m个人从队伍中出列,然后从下一个人开始,又依次从1,2,....m报数,每次将报数为第m的人出列,直到最后只剩下1个人为止,则剩下的最后一個人获得游戏的胜利,现在给定n和m(n,m>0),让你求出哪位队员将获得游戏的胜利? 分析如下 假设每次队列的编号为:1, 2, 3......n,那么报数为m的人,编号应…
先写我的思路,没有用指针的做法.如果你用的是VC,把第六行去掉. #include<stdio.h> #include<stdlib.h> int main() { setvbuf(stdout,NULL,_IONBF,0); int n,num; //n为总人数,num为剩余人数. int a[255]={0}; //用0标记此位置有人,若此位置的人退出,则该位置的值为1 int i; int flag=0; //flag为报数 printf("How many peo…
题目: 报数 报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数.如下所示: 1, 11, 21, 1211, 111221, ... 1 读作 "one 1" -> 11. 11 读作 "two 1s" -> 21. 21 读作 "one 2, then one 1" -> 1211. 给定一个整数 n, 返回 第 n 个顺序. 样例 给定 n = 5, 返回 "111221". 注意 整数的顺序将…
又一次因为一个小错误,POJ上Wrong Answer了无数次..... 在差不多要放弃的时候,发现了这个猥琐的不能再猥琐的bug,改完了提交就AC了,简直无语.... 本题wo采用模拟方法: 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 struct child{ 6 char name[16]; 7 int id; 8 //child(stri…