NYOJ 77 开灯问题

#include <stdio.h>
#include <string.h>
#define maxn 1050
int a[maxn];
int main(void)
{
int n,k,i,j;
memset(a,0,sizeof(a));
scanf("%d%d",&n,&k);
for(i=1; i<=k; i++)
for(j=1; j<=n; j++)
if(j%i==0)a[j]=!a[j];
for(i=1; i<n; i++)
if(a[i])printf("%d ",i);
a[i]?printf("%d\n",i):printf("\n");
return 0;
}
解题思路:用一个数组存放灯的状态,利用memset()【(bzero()也可制0,已过时)函数将其全部制0,也可初始化为0】,表示灯全部关闭,输入n盏灯,k个人,两重for循环,i循环表示人,j循环表示灯,判断j%i是否等于零,每个人都可能会对所有的灯进行修改
第一个人 即 i=1,那么j%i一直等于0,作用是将所有的灯都打开
第二次(也就是第二个人),i=2,每个灯对 i 进行%,j%i 灯的编号 是否能被 j 整除,如果可以则将灯的状态反转,作用是 " 第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉) "
依次类推,这里 i j、都取1 ,从第一盏灯开始(没有第0盏灯),到j<=n,i<=k,第n盏灯,第K个人。
然后 for 循环 从第一盏灯,到第 n-1 盏灯,如果 a[i] (只为1,说明灯亮),则输出。最后一盏灯单独判断,是会存在多输出一个 “ ”空格的原因。
NYOJ 77 开灯问题的更多相关文章
- NYOJ 题目77 开灯问题(简单模拟)
开灯问题 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 ...
- NYOJ题目77开灯问题
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsUAAAHXCAIAAADbX7BCAAAgAElEQVR4nO3dvVLrSMAm4L0Jci6E2B
- [NYLG-OJ] 77 开灯问题(白书例题)
#include<stdio.h> int main() { int a[1010]={0}; //储存灯的开闭情况 int n,k,i,j; scanf("%d%d" ...
- c语言实现开灯问题
开灯问题: 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依 ...
- Jquery开灯关灯效果
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 9509 开灯(dfs)
9509 开灯 时间限制:1000MS 内存限制:65535K提交次数:0 通过次数:0 题型: 编程题 语言: G++;GCC Description 有16的开关分别控制16盏灯,开关排列成 ...
- 洛谷 P1876 开灯(思维,枚举,规律题)
P1876 开灯 题目背景 该题的题目是不是感到很眼熟呢? 事实上,如果你懂的方法,该题的代码简直不能再短. 但是如果你不懂得呢?那...(自己去想) 题目描述 首先所有的灯都是关的(注意是关!),编 ...
- 【Luogu1876】开灯(数论)
[Luogu1876]开灯(数论) 题面 题目描述 首先所有的灯都是关的(注意是关!),编号为1的人走过来,把是一的倍数的灯全部打开,编号为二的的把是二的倍数的灯全部关上,编号为3的人又把是三的倍数的 ...
- POJ 1218 THE DRUNK JAILER(类开灯问题,完全平方数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2188 题目大意:n为5-100之间的一个数,代表有多少间牢房,刚开始所有房间打开,第一轮2的倍数的房间 ...
随机推荐
- [应用层]mail邮件协议
转:http://***/chapter-14/ 以前老记不住这smtp和pop3谁收谁发. 简单邮件传输协议(SMTP),用来发送或中转发出的电子邮件,占用tcp 25端口. 第三版邮局协议(POP ...
- Linux 网络编程六(socket通信UDP版)
//udp接收消息 #include <stdio.h> #include <stdlib.h> #include <string.h> #include < ...
- bisController
public class BisController : Controller { // // GET: /Bis/ protected string GetJson(object obj) { Is ...
- Matlab的title如何实现换行显示?
怎么才能在'B Range'前面开始换行呢? title(['abc','L Range:',num2str(a),'(nm)','~~',num2str(b),'(cm)','B Range:',n ...
- 关闭Outlook时最小化 dll
用Outlook时最让我感觉不爽的就是不小心点了关闭按钮就会把Outlook关闭. 我们用软件的时候都希望软件有一个关闭时最小化功能,更希望Outlook也有这个功能 但让我很失望的是把设置里看了一个 ...
- unity3d 赛车游戏——复位点检测优化、反向检测、圈数检测、赛道长度计算
接着上一篇文章说 因为代码简短且思路简单 所以我就把这几个功能汇总为一篇文章 因为我之前就是做游戏外挂的 经过验证核实,**飞车的复位点检测.圈数检测就是以下的方法实现的 至于反向检测和赛道长度计算, ...
- (旧)子数涵数·Flash——遮罩动画
一.打开Flash,并新建一个flash文档 二.然后,用矩形工具,快捷键R,绘制一个背景图 三.新建一个图层 四.右击刚刚新建的"图层2"图层,选择"遮罩层" ...
- [USACO]6.1.3 cow xor(二进制+Trie)
题意:给你一个序列(n<=100000),求出一个连续的子序列[i,j]使得ai xor ai+1 xor…… xor aj最大,求出这个最大值(其中每个数<=2^21) 分析:题目和求一 ...
- GridView的常规用法
GridView控件在Asp.net中相当常用,以下是控件的解释,有些是常用的,有些是偶尔用到的,查找.使用.记录,仅此而已.(最后附带DropDownList控件) ASP.NET中GridView ...
- Linux下SVN安装配置
第一章 安装 1. 采用源文件编译安装.源文件共两个,为:subversion-1.6.1.tar.gz (subversion 源文件)subversion-deps-1.6.1.tar.gz ...