C++之开灯问题(链表)】的更多相关文章

有n盏灯,编号为1~n.第1个人把所有灯打开,第2个人按下所有编号为2的倍数开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关,以此类推.一共有k个人,问最后有哪些灯开着?输入n和k,输出开着的灯的编号.k<=n<=100 样例输入    7  3 样例输出    1  5   6   7 #include<stdio.h> #include <stdlib.h> typedef struct light{ int state; // state 为 0 时代…
开灯问题: 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推.一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯编号.k≤n≤1000. 附上代码: #include<stdio.h> #include<string.h> #define MAX 1000+10 int a[MAX]; int main() { , k=; //…
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-…
9509 开灯 时间限制:1000MS  内存限制:65535K提交次数:0 通过次数:0 题型: 编程题   语言: G++;GCC Description 有16的开关分别控制16盏灯,开关排列成4*4的矩形,这些开关有这样的关系: 你改变其中一个开关的状态,与其同行和同列的开关的状态也跟着改变.先给出一个这些开关的初始状态,要求将所有的开关都打开,让所有的灯都亮起来,要求按下开关的次数最少. 输入格式 第一行输入一个整数t,表示有多少个case,每个case之间有一空行,每个case输入一…
开灯问题 时间限制:3000 ms  |            内存限制:65535 KB 难度:1           描述 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2 的倍数的开关(这些灯将被关掉),第3 个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推.一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯编号.k≤n≤1000                     输入 输入一组数据:n和k 输出 输出开着的灯编号…
P1876 开灯 题目背景 该题的题目是不是感到很眼熟呢? 事实上,如果你懂的方法,该题的代码简直不能再短. 但是如果你不懂得呢?那...(自己去想) 题目描述 首先所有的灯都是关的(注意是关!),编号为1的人走过来,把是一的倍数的灯全部打开,编号为二的的把是二的倍数的灯全部关上,编号为3的人又把是三的倍数的灯开的关上,关的开起来……直到第N个人为止. 给定N,求N轮之后,还有哪几盏是开着的. 输入输出格式 输入格式: 一个数N,表示灯的个数和操作的轮数 输出格式: 若干数,表示开着的电灯编号…
[Luogu1876]开灯(数论) 题面 题目描述 首先所有的灯都是关的(注意是关!),编号为1的人走过来,把是一的倍数的灯全部打开,编号为二的的把是二的倍数的灯全部关上,编号为3的人又把是三的倍数的灯开的关上,关的开起来--直到第N个人为止. 给定N,求N轮之后,还有哪几盏是开着的. 输入输出格式 输入格式: 一个数N,表示灯的个数和操作的轮数 输出格式: 若干数,表示开着的电灯编号 说明 1<=N<=2^40 题解 凭什么这道题目是入门难度!!!! 就因为代码简单???? 想一想,一开始所…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2188 题目大意:n为5-100之间的一个数,代表有多少间牢房,刚开始所有房间打开,第一轮2的倍数的房间(打开的关上,关上的打开),第二轮3的倍数,第四轮4的倍数......n轮,最后有几间牢房打开的 . 解题思路:开灯问题,跟HDU 2053差不多,只要牢房编号是完全平方数,那囚犯就可以逃出去.这里有解释:http://www.cnblogs.com/fu3638/p/7507239.html sq…
使用按钮开灯关灯 接线图非常简单,LED接GPIO17号口,按钮接GPIO2号口,负极接GND地线. 代码也非常简单: from gpiozero import LED, Button from signal import pause led = LED() button = Button() button.when_pressed = led.on button.when_released = led.off pause() 复制代码 执行代码,按下按钮,发光二极管就会亮,松开就会灭. 使用按…
开灯(面向对象复习) 设计一个台灯类(Lamp)其中台灯有灯泡类(Buble)这个属性,还有开灯(on)这个方法 设计一个灯泡类(Buble),灯泡类有发亮的方法 其中有红灯泡类(RedBuble)和绿灯泡类(GreenBuble)他们都继承灯泡类(Buble)一个发亮的方法 请设计出一段代码可以使台灯开启灯泡发亮,并且保证替换不同种类的灯泡,台灯类代码不被修改 public class Lamp { private Buble buble;//灯泡 public Buble getBuble(…
[BZOJ3508]开灯 题面 bzoj 题解 其实变为目标操作和从目标操作变回来没有区别,我们考虑从目标操作变回来. 区间整体翻转(\(\text{Xor}\;1\))有点难受,我们考虑将这个操作放在差分数组上,也就是说令\(a\)为原数组,\(c\)为差分数组,\(c_i=a_{i-1}\text{Xor}\;a_i\). 那么我们就相当于让差分数组上的数全变为\(0\),而一次操作就相当于让一对\(1\)消掉或一对\(0,1\)位置互换. 而两个\(1\)在其他位置消掉和在某个\(1\)的…
开灯问题 有n盏灯,编号为1~n.第1个人把所有灯打开,第2个人按下所有编号为2的倍数开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关,以此类推.一共有k个人,问最后哪些灯是开着?输入n和k,输出开着的灯的编号.k<=n<=100 •样例输入 7 3 •样例输出 1 5 6 7 思路:1.定义一组数组,初始化状态为0(开灯状态用1表示,关灯状态用0表示) 2.遍历循环k个人的操作,判断灯的号码是否为第i个人的倍数,符合条件则取反灯的开关状态 3.最后遍历数组,输出状态为1的灯的编号…
P1876 开灯 题目背景 该题的题目是不是感到很眼熟呢? 事实上,如果你懂的方法,该题的代码简直不能再短. 但是如果你不懂得呢?那...(自己去想) 题目描述 首先所有的灯都是关的(注意是关!),编号为1的人走过来,把是一的倍数的灯全部打开,编号为二的的把是二的倍数的灯全部关上,编号为3的人又把是三的倍数的灯开的关上,关的开起来--直到第N个人为止. 给定N,求N轮之后,还有哪几盏是开着的. 输入输出格式 输入格式: 一个数N 输出格式: 若干数,表示开着的电灯编号 输入输出样例 输入样例#1…
算法提高 开灯游戏 时间限制:1.0s 内存限制:256.0MB 问题描述 有9盏灯与9个开关,编号都是1~9. 每个开关能控制若干盏灯,按下一次会改变其控制的灯的状态(亮的变成不亮,不亮变成亮的). 具体如下: 第一个开关控制第二,第四盏灯: 第二个开关控制第一,第三,第五盏灯: 第三个开关控制第二,第六盏灯: 第四个开关控制第一,第五,第七盏灯: 第五个开关控制第二,第四,第六,第八盏灯: 第六个开关控制第三,第五,第九盏灯: 第七个开关控制第四,第八盏灯: 第八个开关控制第五,第七,第九盏…
声明:本人只是学生,并且只是自学Unity,如有大神,不喜勿喷,不足之处,请指出! 本项目使用了UniStorm 3.0(天气)插件,时间也是调用它本身的API,实际并不影响,用系统的时间的是也是可以的 打开自己建立的Unity项目 找个灯的模型拖到场景中去 给灯模型添加Component,搜索Light 这种Light添加方式默认就是居中的,我觉得不适合这种长的灯管,其他加Light方式在下面 另种Add Light方式 这种方式就比较好,可以调整灯泡的位置 脚本出场了 建立一个C#脚本,我就…
package 第三章; public class 开灯问题3_2 { public static void main(String[] args) { // TODO Auto-generated method stub final int maxn=1010; //用boolean数组 boolean a[]=new boolean[maxn]; for(int i=1;i<=100;i++)  { for(int j=1;j<=101;j++)  { if(j%i==0)  { a[j]…
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsUAAAHXCAIAAADbX7BCAAAgAElEQVR4nO3dvVLrSMAm4L0Jci6E2B…
/**有n个灯,编号为1-n.第一个人把所以灯打开,第二个人按下 所有编号为2的倍数的开关,第三个人按下3的倍数的开关,依次类推, 一共有k个人,问最后有哪些灯开着? 样例输入: 7 3 样例输出: 1 5 6 7 **/ #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int a[1005],i,j,k,n,first=1; scanf("%d%d",&…
#include<stdio.h> int main() { int a[1010]={0}; //储存灯的开闭情况 int n,k,i,j; 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(j=1;j<=n;j++) { if(a[j]) printf("%d ",j); } }…
[题目描述:] 首先所有的灯都是关的(注意是关!),编号为1的人走过来,把是一的倍数的灯全部打开,编号为二的的把是二的倍数的灯全部关上,编号为3的人又把是三的倍数的灯开的关上,关的开起来--直到第N个人为止. 给定N,求N轮之后,还有哪几盏是开着的. [输入格式:] 一个数N,表示灯的个数和操作的轮数 [输出格式:] 若干数,表示开着的电灯编号 [说明:] $ 1 <= N <= 2^40 $ [算法分析:] 一看n的范围就懵了,一开始想的是开一个数组模拟,\(2^40\)的一维数组是绝对是开…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2053 题目大意:灯开始是关着的,有n盏灯,i从1数到n每当灯的序号是i的倍数的时候就对灯进行一次操作(开->关,关->开),求最后第n盏灯是关着还是开着. 解题思路:直接对第n盏灯模拟也可以,但是有规律更好不是吗~.其实就是判断n的约束奇偶性,奇数就开着,偶数就关着. 当一个数不是完全平方数:如18约数为:(3,6),(2,19),(1,15)约数个数总会是偶数,因为每个约数都有一个对应的不同的约…
题目描述 有n盏灯,一开始全是关闭的.来n个人, 第一个人把一的倍数的灯开着的关上,关上的打开. 第二个人把二的倍数的灯开着的关上,关上的打开. 第三个人把三的倍数的灯开着的关上,关上的打开. ........ 问最后第几盏灯开着. 题解 写个暴力发现开着的灯都是小于n的完全平方数啊 证明如下(参考yyb题解): 可知,第n盏灯被操作的次数为n的约数. 若 n=p1^a1*p2^a2*p3^a3*... 则n约数的个数为 (a1+1)(a2+1)(a3+1).... 若最后某盏灯亮着,那么它一定…
题目地址 分析: 用一个数组来保存每盏灯的操作的次数.推断奇偶就可以推断灯的状态. 最后的输出格式须要注意一下空格的位置,思路就是现输出一个.剩下来的输出在前面加一个空格. 空格用_表示: 1_3_5_7 代码: /* 有n盏灯,编号为1~n,第1个人把全部灯打开, 第2个人按下全部编号为2 的倍数的开关(这些灯将被关掉), 第3 个人按下全部编号为3的倍数的开关(当中关掉的灯将被打开,开着的灯将被关闭),依此类推. 一共同拥有k个人,问最后有哪些灯开着? 输入:n和k.输出开着的灯编号.k≤n…
题目背景 该题的题目是不是感到很眼熟呢? 事实上,如果你懂的方法,该题的代码简直不能再短. 但是如果你不懂得呢?那...(自己去想) 题目描述 首先所有的灯都是关的(注意是关!),编号为1的人走过来,把是一的倍数的灯全部打开,编号为二的的把是二的倍数的灯全部关上,编号为3的人又把是三的倍数的灯开的关上,关的开起来……直到第N个人为止. 给定N,求N轮之后,还有哪几盏是开着的. 输入输出格式 输入格式: 一个数N,表示灯的个数和操作的轮数 输出格式: 若干数,表示开着的电灯编号 输入输出样例 输入…
<!DOCTYPE html> <html> <body> <script> function changeImage() { element=document.getElementById('myimage') if (element.src.match("bul1")) //这里的意思是让bul1与图片名称匹配,如果图片名称中含有bul1,则为真 { element.src="/images/pic_bulboff.gif&…
#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<…
Problem Description 计算中心有8个机房,每个机房有n台电脑.每台电脑都有一个编号,比如8号机房编号就为H1到Hn,我们有时又称为H1为1号机器,H2为2号机器,.... 有一天我们学校跻身世界高校100强,全校所有师生都进行了狂欢庆祝.罗老师是个很爽快的人,也很喜欢喝酒,那天他喝多了点.但不巧的是那天晚上正好罗老 师值班,罗老师是个很负责的老师.所以他就把8号机房打开了.但同学们都还在狂欢,没一个人来上机.罗老师提着一瓶酒,感觉到很无聊,所以他想玩个游戏. 第一回合,他喝了一…
static void light(Boolean[] lights,int n) {     if (n <= 1 || lights.Length<5) return;     for (int i = 0; i < lights.Length; i++)     {         if ((i + 1) % n == 0) lights[i] = !lights[i];     }     light(lights, n - 1); } static void Main(stri…
提高解时预处理的速度 本方法的结果是得到满足所有黑色有数字方块的一个带有未照亮的块的可能解集. 解集大小为 4~(3号块数量+1号块数量)+6~(2号块数量)-灯互相照射到的解的集合.集合中的灯为黄色. 1.所有白色块,放置棕色灯,棕色灯可能被其他棕色灯互相照射,记录每个棕色灯被几个棕色灯照亮,每个白色块被几个灯照亮. 开始剪枝: 2如果有块未被照亮,本解为不可行解 3找出数值为0的棕色块,变为黄色. 4.找出数值为1的白色快,如果该白色块是被棕色灯照亮,把棕色灯变成黄色 5.找出数值为1的棕色…
传送门 这道题凭什么是! 就因为它代码短?! 还是我太菜了... 第$i$盏灯的开关与否只由其约数个数决定,又有约数公式: 当$n=p_1^{a_1}p_2^{a_2}...p_n^{a_n}$时,约数个数$=(a_1+1)(a_2+1)...(a_n+1)$要使灯亮着,则$(a_1+1)(a_2+1)...(a_n+1)$是奇数.于是$a_1, a_2, a_3, ... a_n$都是偶数.所以$n=m^2, m=p_1^{a_1/2}p_2^{a_2/2}...p_n^{a_n/2}$于是所…