- 博客(19)
- 收藏
- 关注
转载 位运算可以实现哪些功能
位运算可以实现哪些功能 许多时候,我们为了减少算法的时间复杂度,都是推荐使用位运算,今天我们整理一下位运算可以实现哪些功能。1. 乘除2 左移1位乘以2,左移n位乘以2^n; 右移1位除以2,右移n位除以2^n; 举个例子:[cpp] view plain copy#include<iostream> using namespace std; ...
2018-06-26 17:27:11
715
原创 洛谷 P1007 独木桥
题目背景战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳一个人通过。假如有两个人相向而行在桥上相遇,那么他们两个人将无妨绕过对方,只能有一个人回头下桥,让另一个人先通过。但是,可以有多个人同时呆在同一个
2017-08-23 22:33:18
406
原创 很经典的深搜,但却伤了我的心(洛谷 1238) 走迷宫
题目描述有一个n*m格的迷宫(表示有n行、m列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这n*m个数据和起始点、结束点(起始点和结束点都是用两个数据来描述的,分别表示这个点的行号和列号)。现在要你编程找出所有可行的道路,要求所走的路中没有重复的点,走时只能是上下左右四个方向。如果一条路都不可行,则输出相应信息(用-l表示无路)。请统一用 左上右下
2017-07-22 13:32:05
1375
1
原创 还算有点技术含量的一题(贪心) 金银岛
描述某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属。但是他只带着一个口袋,口袋至多只能装重量为w的物品。岛上金属有s个种类, 每种金属重量不同,分别为n1, n2, ... , ns,同时每个种类的金属总的价值也不同,分别为v1,v2, ..., vs。KID想一次带走价值尽可能多的金属,问他最多能带走价值多少的金属。
2017-07-16 12:05:01
702
原创 一个很智障却很实用的程序(十进制转二进制)
好歹也搞了几年OI了,竟然连最基础的进制转换都没搞会,不能再这样下去了,历经千辛,总算,我这个辣鸡写出了一个十转二的程序,大佬们见笑了代码如下:#include #include using namespace std;int a[1000],len=1;void turndate(int x){ while(x/2!=1) { a[len]=x%2; x/=2;
2017-07-15 18:12:12
342
原创 洛谷P1107 最大整数
题目描述设有n个正整数 (n例如: n=3时, 3个整数13, 312, 343连接成的最大整数为: 34331213,又如: n=4时, 4个整数7,13,4,246连接成的最大整数为: 7424613输入输出格式输入格式:n n个数输出格式:连接成的多位数输入输出样例输入样例#1:313 312 34347 13 4 246输
2017-07-15 17:53:30
416
转载 c++字符串读入写入小结
学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)1、cin 2、cin.get() 3、cin.getline() 4、getline() 5、gets() 6、getchar()附:cin.ignore();cin.get();//跳
2017-07-13 21:36:43
563
原创 整数区间(贪心)
请编程完成以下任务: 1.从文件中读取闭区间的个数及它们的描述; 2.找到一个含元素个数最少的集合,使得对于每一个区间,都至少有一个整数属于该集合,输出该集合的元素个数。【输入】 首行包括区间的数目n,1【输出】第一行集合元素的个数,对于每一个区间都至少有一个整数属于该区间,且集合所包含元素数目最少。【样例输入】 4
2017-07-13 21:05:22
1617
原创 又是一道贪心题 活动选择
Problem Description学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使。由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使用其他教室。现在给出n个活动使用礼堂的起始时间begini和结束时间endi(begini输入输入有多组数据,每组数据的第一行一个整数n(n输出对于每组数据输出最多能安排的活动个数
2017-07-11 20:10:34
2701
原创 删数问题(典型的贪心算法问题)
题目:键盘输入一个高精度的正整数n(去掉任意s个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数最小。Simple Input1785434Simple Output13先放代码:#include #include using namespace std;int main(){ i
2017-07-01 20:38:42
7467
原创 NOIP 2002提高组 均分纸牌
均分纸牌问题:有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸牌,然后移动。移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一
2017-06-28 23:04:30
711
原创 贪心经典题目
问题描述:有N个人排队到R个水龙头去打水,他们装满水桶的时间为T1,T2,…,Tn为整数且各不相等,应如何安排他们的打水顺序才能使他们花费的时间最少?【样例输入】 4 2 //4人打水,2个水龙头 2 6 4 5 //每个打水时间先放代码:#include #i
2017-06-27 23:04:47
1487
原创 看似很简单的一道题 (openjudge 1.4 16题)
描述求10000以内n的阶乘。输入只有一行输入,整数n(0输出一行,即n!的值。样例输入:3 样例输出:6先放代码:#include #include using namespace std;int main(){ int a[100000],n,w=1,x=0; scanf("%d",&n);
2017-06-18 12:57:02
2873
原创 NOIP 2002普及组 T2
[问题描述]: 已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34。现在,要求你计算出和为素数共有多少种。例如上例,只有一种
2017-06-17 16:52:05
412
原创 NOIP 2006(提高组T1)
题目描述在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为m,尾标记为r
2017-06-10 16:37:03
284
原创 关于gcd的函数和过程两种不同写法
没什么特别的,只是想记录一下不同的写法函数(有返回值)#includeusing namespace std;int gcd(int x,int y){ if(x%y==0) return y; else return (gcd(y,x%y));} int main(){ int a,b; scanf("%d%d",&a,&b); printf("%d",gcd(a,
2017-05-29 11:54:56
3121
原创 放一段高精度加法的代码
今天算是彻底进入了算法的学习,当然第一个接触的高精度,没什么好说的,先放一段自己的代码,高精度要多练习。高精度加法:#include#include#includeusing namespace std;int main(){ char n1[100],n2[100]; int a[100],b[100],c[100],x,i,lena,lenb,lenc; memset(
2017-05-06 15:49:44
314
原创 一道经典的深搜题,不易写满分(素数环)
【问题描述】将1~n这n个数字首尾相连,形成一个圆环,要求圆环上任意两个相邻的数字之和都是一个素数,请编程输出符合条件的素数环。【输入数据】输入数据仅一行,包含一个正整数n(n【输出数据】输出数据最多包括10行,每行由n个整数组成,表示前十个符合条件的素数环(不足十个时全部输出)。所有素数环第一个元素必须是1,且按照从小到大的顺序排列。【输入样例】输入6【输出样例】输出
2017-04-30 22:17:15
1956
原创 2017马鞍山市小学组市选最后一题
今天算是c++基础语言的最后一课,上了结构体这个神奇的东西,很好用。做了一道题目,测了好多遍,总算AC,想要AC还是挺难的。问题描述:为了促进学生练习跳绳,某学校举行跳绳比赛,比赛规则为:每参赛者跳3次,按3次跳绳总数从高到低排名,如果3次跳绳总数相同,则按3次中跳的最多那次进行排序(从高到低),若还相同,则按出场顺序先后排序(先出场的排在前,后出场的排在后)。【输入数据】
2017-04-22 22:59:14
554
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人