算法设计
雕刻刀
这个作者很懒,什么都没留下…
展开
-
轮流取石头
两个足够聪明的人玩轮流取石头的游戏,谁取到最后一个石头谁就赢了,他们一次只能取1个、3个、7个或8个石头,写一程序判断n个石头时先取的人是输还是赢。输入格式:一个整数n,其值不超过10000000。输出格式:如果先取的人赢,请以单独一行输出1,否则输出0。输入样例:这里是3组输入。110300输出样例:上面3组数据对应的输出分别如下:110(1)分析建立数组a[i]代表取石头的人面临i个石头时会输还是赢,a[i]=1代表会赢,由题意得a[1]=a[3]=a[7]=a[8].原创 2020-12-07 11:34:40 · 339 阅读 · 0 评论 -
全地区畅通需要的最低成本
某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。输入格式:输入的第一行给出村庄数目N (1≤N≤100);随后的N(N−1)/2行对应村庄间道路的成本及修建状态:每行给出4个正整数,分别是两个村庄的编号(从1编号.原创 2020-12-06 10:05:16 · 380 阅读 · 0 评论 -
自驾旅游路线图
有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;D是目的地的城市编号。随后的M行中,每行给出一条高速公路的信息,分别是:城市1、城市2、高速公路长度、收费额.原创 2020-12-06 10:04:23 · 838 阅读 · 0 评论 -
美团2016招聘笔试:奇数位丢弃
1.美团2016招聘笔试:奇数位丢弃对于一个由0…n的所有数按升序组成的序列,我们要进行一些筛选,每次我们取当前所有数字中从小到大的第奇数位个的数,并将其丢弃。重复这一过程直到最后剩下一个数。请求出最后剩下的数字。输入描述:每组数据一行一个数字,为题目中的n(n小于等于1000)。输出描述:一行输出最后剩下的数字。输入例子:500输出例子:255(1)分析由分析得第n次取当前第奇数位个的数并将其丢弃,等价于第n次保留位次是2的n次方的倍数的数,等价于第n次剔除位次不是2的n次方的倍数的原创 2020-12-06 10:03:15 · 433 阅读 · 0 评论 -
A - 子集和问题
Description子集和问题的一个实例为〈S,t〉。其中,S={ x1 , x2 ,…,xn }是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得S1子集和等于c。试设计一个解子集和问题的回溯法。对于给定的正整数的集合S={ x1 , x2 ,…,xn }和正整数c,计算S 的一个子集S1,使得S1子集和等于c。Input输入数据的第1 行有2 个正整数n 和c(n≤10000,c≤10000000),n 表示S 的大小,c是子集和的目标值。接下来的1 行中,有n原创 2020-12-01 17:43:31 · 219 阅读 · 0 评论 -
素数环问题(回溯法)
素数环是一个计算机程序问题,指的是将从1到n这n个整数围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环。现在要求输入一个n,求n个数围成一圈有多少种素数环,规定第一个数字是1。分析:准备:num纪录素数环个数将结果放入缓存数组a,a[i]代表第i个数据设置visit数组,visit[i]==1代表数字i已经在缓存数组中dfs(step)函数用于从第step个数据开始搜索初始化:由于第一个数据固定为1,所以主函数里a[1]=1; visit[1]=原创 2020-11-16 21:03:41 · 2837 阅读 · 0 评论