C/C++算法及题解
小白tree
致力于成为图形学工程师的小白
展开
-
蓝桥杯 合根植物 并查集
#include<iostream>#include<set>#include<vector>#include<map>#include<algorithm>using namespace std;const int MAX = 1e6+10;int m, n;int pre[MAX];// 查根函数int getRoot(int x){ return x == pre[x] ? x : pre[x] = getRoo原创 2020-10-17 00:11:07 · 108 阅读 · 0 评论 -
蓝桥杯之带分数(全排列+暴力)
题目链接:http://oj.ecustacm.cn/problem.php?id=1426Description100 可以表示为带分数的形式:100 = 3 + 69258 / 714。还可以表示为:100 = 82 + 3546 / 197。注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。Input从标准输入读入一个正整数N (N<1000*1000)Output程序输出该数字用数码1~9不重复不遗漏原创 2020-10-16 16:30:55 · 499 阅读 · 0 评论 -
机器人繁殖
问题:X星系的机器人可以自动复制自己。它们用1年的时间可以复制出2个自己,然后就失去复制能力。每年X星系都会选出1个新出生的机器人发往太空。也就是说,如果X星系原有机器人5个,1年后总数是:5 + 9 = 142年后总数是:5 + 9 + 17 = 31如果已经探测经过n年后的机器人总数s,你能算出最初有多少机器人吗?输入格式:输入一行两个数字n和s,用空格分开,含义如上。n不大于100,s位数不超过50位。输出格式:要求输出一行,一个整数,表示最初有机器人多少个。输入样例:原创 2020-10-16 11:08:18 · 3438 阅读 · 1 评论 -
导弹拦截——最长递减与非递减子序列
参考:(1)《挑战程序设计》P64最长上升子序列问题(2)https://www.cnblogs.com/cjl-world/p/13490928.html#include<iostream>#include<cstdio>#include<algorithm>#include<functional>using namespace std;const int INF = 1e6;int main(){ int h[1000]; in原创 2020-10-14 21:50:17 · 264 阅读 · 0 评论 -
hdu2023求平均成绩 杭电OJ Compilation error
请广大朋友帮我找不同,有哪一行不一样么?为何么特么一个Compilation error一个Accept!服了!原创 2020-03-12 20:20:43 · 358 阅读 · 0 评论 -
hdu 2015偶数求和
#include<iostream>using namespace std;int main(){ int n, m; while (cin >> n >> m) { // end指能够完成“对完整m个取平均值”循环的最后一个索引(索引从1开始) int end = n - (n % m); ...原创 2020-03-09 21:59:51 · 712 阅读 · 0 评论 -
详解埃氏筛选法筛选质数(C++实现)
说明:篇中的n和N都是同一个意义,大小写不过是为了表现具体和一般形式而已,穿插着用可能让读者容易混淆,请多体谅。一、质数定义指在大于1的整数中,只能被1和它本身整除的数。二、埃氏筛选法最重要的结论:N有因数的话,那么至少有一半的因数不会超过N\sqrt{N}N。举个例子,要判断100是不是质数,100 = 10 X 10,只要有1个因数 > 100\sqrt{100}100,必...原创 2020-03-09 14:56:55 · 1247 阅读 · 0 评论 -
C++证明哥德巴赫猜想:任意两个大于等于4的偶数都能被两个质数分解
格式:要求输入一个偶数,你负责找出所有能够分解质数解。如6 = 3+3#include<iostream>using namespace std;// 判断是否为质数 num为传入的要判断的数bool isPrime(int num){ if (num == 2) return true; bool flag = true; for (int i = 2; i...原创 2019-11-30 19:44:10 · 1495 阅读 · 0 评论 -
两道公式题—HDU 2047 阿牛的EOF牛肉串 hdu 2045 不容易系列之(3)―― LELE的RPG难题
一、HDU 2047 阿牛的EOF牛肉串http://acm.hdu.edu.cn/showproblem.php?pid=2047Problem Description今年的ACM暑期集训队一共有18人,分为6支队伍。其中有一个叫做EOF的队伍,由04级的阿牛、XC以及05级的COY组成。在共同的集训生活中,大家建立了深厚的友谊,阿牛准备做点什么来纪念这段激情燃烧的岁月,想了一想,阿牛从家...原创 2018-12-12 20:22:18 · 207 阅读 · 0 评论 -
# 从键盘输入一个正整数,用2的幂次方的形式输出。约定幂次方用括号来表示,即表示为2(b),b=1时,幂省略。例如139=2^7+2^3+2^1+2^0,即:2(7)+2(3)+2+2(0)
样例输入:402样例输出:2(8)+2(7)+2(4)+2要求:幂不能重复,如:139=26+26+23+21+20(出现了2个6次方)参考 C 代码:#include<stdio.h>#include<stdlib.h>#include<math.h>int main(){ int n; scanf("%d",&n); int...原创 2018-11-03 15:44:42 · 2236 阅读 · 0 评论 -
核桃的数量
链接: http://lx.lanqiao.cn/problem.page?gpid=T24问题描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:各组的核桃数量必须相同各组内必须能平分核桃(当然是不能打碎的)尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式输入包含三个正整数a,...原创 2019-03-24 15:41:39 · 152 阅读 · 0 评论 -
KMP 算法及其本质详细讲解
tips:KMP其实本质并不复杂,我尽量用最简单的语句表达;另外,本人特别喜欢另一种更年轻高效字符串匹配算法——Sunday算法,感兴趣的可以前往查看该参考博文:https://blog.csdn.net/q547550831/article/details/51860017KMP作用:char *str = &amp;quot;bacbababadababacambabacaddababacasdsd...原创 2019-01-07 09:56:43 · 1181 阅读 · 0 评论 -
有关计数的DP之2——多重集组合数(超详细!)
Problem Description:有n种物品, 第i种物品有a个. 不同种类的物品可以互相区分, 但相同种类的无法区分.从这些物品中取出m个, 有多少种取法? 求出数模M的余数.restricted condition:1 &lt;= n &lt;= 10001 &lt;= m &lt;= 10001 &lt;= ai &lt;= 10002 &lt;= M &原创 2018-12-22 13:48:28 · 951 阅读 · 0 评论 -
# 0001:n^m的位数
利用头文件cmath中的log10函数,注意最后位数+1#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;cmath&amp;amp;gt;using namespace std;int main(){ int t; cin &amp;amp;gt;&amp;amp;gt; t; while (原创 2018-11-01 22:13:39 · 338 阅读 · 0 评论 -
# 0003:fill的游戏
#include&amp;amp;amp;lt;iostream&amp;amp;amp;gt;#include&amp;amp;amp;lt;cstdio&amp;amp;amp;gt;#include&amp;amp;amp;lt;cmath&amp;amp;amp;gt;using namespace std;const int maxn = 1e6 + 10;char str[ma原创 2018-11-01 22:13:06 · 164 阅读 · 0 评论 -
# 0003 平方和与立方和
题目地址 http://acm.hdu.edu.cn/showproblem.php?pid=2007Problem Description给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。Input输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。Output对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方...原创 2018-11-01 22:13:26 · 112 阅读 · 0 评论 -
求多项式 1 - 1/2 + 1/3 - 1/4 + ... 前n项的值
Problem Description多项式的描述如下:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + …现在请你求出该多项式的前n项的和。Input输入数据由2行组成,首先是一个正整数m(m<100),表示测试实例的个数,第二行包含m个正整数,对于每一个整数(不妨设为n, n<1000),求该多项式的前n项的和。Output对于每个测试实例n,要求输...原创 2018-10-27 21:28:29 · 15409 阅读 · 0 评论 -
hdu OJ # Lowest Common Multiple Plus 简单(暴力)解法和技巧解法
Problem Description求n个数的最小公倍数。Input输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数。Output为每组测试数据输出它们的最小公倍数,每个测试实例的输出占一行。你可以假设最后的输出是一个32位的整数。Sample Input2 4 63 2 5 7Sample Output1270非常水的题,下面是C++代码:...原创 2018-11-02 14:14:58 · 203 阅读 · 0 评论 -
# 汉字统计
Problem Description统计给定文本文件中汉字的个数。Input输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。Output对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。[Hint:]从汉字机内码的特点考虑~Sample Input2WaHaHa! WaHaHa! 今年过节不说话要说只说普通话WaHaHa! WaHaHa!马上就要...原创 2018-11-03 00:29:24 · 358 阅读 · 0 评论 -
# 进制转换
Problem Description输入一个十进制数N,将它转换成R进制数输出。Input输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。Output为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。Sample Input7 2...原创 2018-11-03 01:13:34 · 223 阅读 · 0 评论 -
# 人见人爱A-B(集合差集)
Problem Description参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下)呵呵,很简单吧?Input每组输入数据占1行,每行数据的开始是2个整数n(0<=n<=...原创 2018-11-03 20:01:53 · 694 阅读 · 0 评论 -
拓展欧几里得算法
我们从17x + 5y = 1方程出发——欧几里得算法拓展之后,人们发现形如A * x + B * y = gcd(A, B) = gcd(B, A%B) (欧几里得算法得知)的方程,都是一定有解的。我们做以下方程变换:// ∵A = A % B * B + A % B 即拆解A// 拆解后的 A 代入方程 A * x + B * y = gcd(A, B) = gcd(B, A%B) ...原创 2018-11-14 13:11:49 · 166 阅读 · 0 评论 -
食物链 poj-1182
Problem Description动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。有人用两种说法对这N个动物所构成的食物链关系进行描述:第一种说法是”1 X Y”,表示X和Y是同类。第二种说法是”2 X Y”,表示X吃Y。此人对N个动物,用上述两...原创 2018-11-20 20:34:57 · 428 阅读 · 0 评论 -
宗教信仰-并查集
Problem Description世界上有许多不同的宗教,现在有一个你感兴趣的问题:找出多少不同的宗教,在你的大学中的大学生信仰了多少种不同的宗教。你知道在你的大学有n个学生(0&lt;n&lt;= 50000)。若直接问每一个学生的宗教信仰不大适合。此外,许多学生还不太愿意说出自己的信仰。有一种方法来避免这个问题,询问m(0&lt;=m&lt;=n(n- 1)/ 2)对学生,询问他们是否信...原创 2018-11-21 00:42:40 · 392 阅读 · 0 评论 -
奇怪的数列(X星电码(字符串处理))
Problem Description从X星截获一 份电码,是一些数字,如下:13111331131321131113122113…YY博士经彻夜研究,发现了规律:第一行的数字随便是什么,以后每一行都是对上一行”读出来”比如第2行,是对第1行的描述,意思是: 1个1,1个3,所以是: 1113第3行,意思是: 3个1,1个3,所以是: 3113请你编写一个程序,可以从初始数...原创 2018-12-09 11:35:53 · 1590 阅读 · 0 评论 -
剪花布条(hdu -2087)
Problem Description一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢?Input输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则...原创 2018-12-09 15:05:32 · 216 阅读 · 0 评论 -
今年暑假不AC(hdu -2037)
Problem Description“今年暑假不AC?”“是的。”“那你干什么呢?”“看世界杯呀,笨蛋!”“@#$%^&amp;amp;amp;*%…”确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小...原创 2019-02-17 22:34:43 · 274 阅读 · 0 评论 -
ACmer有感(ACM输出超限)
注意了,在ACM竞赛题中,需要重复输入多组数据时,有时写while (1) {/* 代码*/}可能会导致 输入超限 的 error此时根据题意写出如:while ( scanf("%d", &amp;a) !=EOF ) {/*代码*/}或while (cin &gt;&gt; a &gt;&gt; b) {/*代码*/}这样的才是极好的...原创 2018-11-03 00:41:23 · 1152 阅读 · 0 评论