
信息学竞赛C++
文章平均质量分 50
信息学竞赛C++
NewGuy_Theasia
这个作者很懒,什么都没留下…
展开
-
【c++】递归求两个整数m和n最大公约数的方法
方法1:辗转相除法边界gcd(m,0)=m;否则返回gcd(n,m%n)方法2:更相减损法边界gcd(m,m)=m;否则gcd(n,m-n)方法3:二进制边界gcd(m,m)=m;m<n时:gcd(n,m)m和n都是偶数时:返回2*gcd(m/2,n/2)m是偶数n不是偶数:返回gcd(m/2,n)m不是偶数n是偶数:返回gcd(m,n/2)m和n都不是偶数:返回gcd(n,m-n)代码#include<iostream>using namespace std;原创 2021-09-30 14:27:39 · 3921 阅读 · 0 评论 -
c++读取文件操作【freop、fopen和文件输入输出流】
1、freopen重定向版#include<cstdio>#include<iostream>using namespace std;//freopen重定向版,操作简单,有些时候不允许 //包含在头文件cstdio中 int main(){ int a; freopen("in.txt","r",stdin);//in.txt是文件名应该是跟程序文件在同一目录下 freopen("out.txt","w",stdout);//out.txt是自动生成的原创 2021-09-30 10:40:01 · 1442 阅读 · 0 评论 -
【数据结构图】floyed最短路径-牛的旅行
牛的旅行题目描述农民 John的农场里有很多牧区。有的路径连接一些特定的牧区。一片所有连通的牧区称为一个牧场。但是就目前而言,你能看到至少有两个牧区通过任何路径都不连通。这样,Farmer John就有多个牧场了。John想在牧场里添加一条路径(注意,恰好一条)。对这条路径有以下限制:一个牧场的直径就是牧场中最远的两个牧区的距离(本题中所提到的所有距离指的都是最短的距离)。考虑如下的有5个牧区的牧场,牧区用“*”表示,路径用直线表示。每一个牧区都有自己的坐标: (15,15) (20原创 2021-09-14 11:00:52 · 320 阅读 · 0 评论 -
【动态规划】B君的多边形
描述有一个正n多边形,我们要连接一些对角线,把这个多边形分成若干个区域。要求连接的对角线不能相交,每个点可以连出也可以不连出对角线。(即最终不要求所有区域均为三角形)问总方案数mod (10^9+7)的结果。输入一行一个整数n输出一行一个整数表示答案。样例输入5样例输出11提示对于所有的的数据,满足n≤10^6代码这是一道找规律的题,没研究明白,先记着吧~#include<iostream>using namespace std;long long inv原创 2020-10-29 14:17:45 · 280 阅读 · 0 评论 -
【动态规划】切割回文
描述阿福最近对回文串产生了非常浓厚的兴趣。如果一个字符串从左往右看和从右往左看完全相同的话,那么就认为这个串是一个回文串。例如,“abcaacba”是一个回文串,“abcaaba”则不是一个回文串。阿福现在强迫症发作,看到什么字符串都想要把它变成回文的。阿福可以通过切割字符串,使得切割完之后得到的子串都是回文的。现在阿福想知道他最少切割多少次就可以达到目的。例如,对于字符串“abaacca”,最少切割一次,就可以得到“aba”和“acca”这两个回文子串。输入输入的第一行是一个整数 T (T &原创 2020-09-25 09:56:06 · 1454 阅读 · 2 评论 -
【动态规划】偶数个数字3
在所有的N位数中,有多少个数中有偶数个数字3?输入一行给出数字N,N<=1000输出如题样例输入2样例输出73代码#include<bits/stdc++.h>using namespace std;int n;int f[1100][3];int main(){ cin>>n; f[1][1]=1; f[1][2]=9; for(int i=2;i<n;i++) { f[i][1]=f[i-1][2]+f[i-1][原创 2020-09-23 14:35:00 · 427 阅读 · 0 评论 -
【动态规划】乘积最大
今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:有一个数字串:312,当N=3,K=1时会有以下两种分法:3*12=原创 2020-09-23 10:01:57 · 883 阅读 · 0 评论 -
【动态规划】酒鬼
描述Santo刚刚与房东打赌赢得了一间在New Clondike 的大客厅。今天,他来到这个大客厅欣赏他的奖品。房东摆出了一行瓶子在酒吧上。瓶子里都装有不同体积的酒。令Santo高兴的是,瓶子中的酒都有不同的味道。房东说道:“你可以喝尽可能多的酒,但是一旦打开酒盖你就必须把它喝完,喝完一瓶后把它放回原处。还有一件最重要的事,你必须从左至右依次喝,并且不能连续超过三瓶,不然会给你带来坏运气。”现在可怜的Santo站在酒吧前努力的想着,他到底应该喝哪几瓶才能使喝的酒最多呢?请帮助他找出他应该喝的酒瓶号,因为思原创 2020-09-18 16:09:33 · 620 阅读 · 0 评论 -
【动态规划】方格取数
描述设有N*N的方格图(N<=10),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。如下图所示(见样例):某人从图的左上角的A 点出发,可以向下行走,也可以向右走,直到到达右下角的B点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。 此人从A点到B 点共走两次,试找出2条这样的路径,使得取得的数之和为最大。输入输入的第一行为一个整数N(表示N*N的方格图),接下来的每行有三个整数,前两个表示位置,第三个数为该位置上所放的数。一行单独的0表示输入结束。输出原创 2020-09-18 15:48:48 · 489 阅读 · 0 评论 -
【动态规划】滑雪
描述Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为2原创 2020-09-17 08:02:16 · 328 阅读 · 0 评论 -
【动态规划】取数问题
描述我们来玩一个游戏:自然数1到N,按顺序列成一排,你可以从中取走任意个数,但是相邻的两个不可以同时被取走。如果你能算出一共有多少种取法,那么你会被天神Lijiganjun奖励。输入仅包含一个数n(1< n < 50)。输出仅包含一个数———你的答案。样例输入5样例输出13解题思路1、这题一看就有递推关系,所以不妨先把n从1开始的情况列出来几个找一下规律:n=1时,可以取0个或1个,所有说f[1] = 2;n=2时,已知取两个数是不能够相邻的,可以去0个;取一个时有2两原创 2020-09-16 10:28:48 · 2349 阅读 · 0 评论 -
【动态规划】鸡蛋的硬度
描述最近XX公司举办了一个奇怪的比赛:鸡蛋硬度之王争霸赛。参赛者是来自世 界各地的母鸡,比赛的内容是看谁下的蛋最硬,更奇怪的是XX公司并不使用什么精密仪器来测量蛋的硬度,他们采用了一种最老土的办法–从高度扔鸡蛋–来 测试鸡蛋的硬度,如果一次母鸡下的蛋从高楼的第a层摔下来没摔破,但是从a+1层摔下来时摔破了,那么就说这只母鸡的鸡蛋的硬度是a。你当然可以找出各种 理由说明这种方法不科学,比如同一只母鸡下的蛋硬度可能不一样等等,但是这不影响XX公司的争霸赛,因为他们只是为了吸引大家的眼球,一个个鸡蛋从100 层原创 2020-09-14 16:23:29 · 1097 阅读 · 2 评论 -
【动态规划】股票买卖(两次买卖)
问题描述最近越来越多的人都投身股市,阿福也有点心动了。谨记着“股市有风险,入市需谨慎”,阿福决定先来研究一下简化版的股票买卖问题。假设阿福已经准确预测出了某只股票在未来 N 天的价格,他希望买卖两次,使得获得的利润最高。为了计算简单起见,利润的计算方式为卖出的价格减去买入的价格。同一天可以进行多次买卖。但是在第一次买入之后,必须要先卖出,然后才可以第二次买入。现在,阿福想知道他最多可以获得多少利润。输入输入的第一行是一个整数 T (T <= 50) ,表示一共有 T 组数据。接下来的每组原创 2020-09-11 09:34:56 · 1816 阅读 · 0 评论 -
【动态规划】宠物小精灵之收服
原题描述宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事。一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物小精灵。小智也想收服其中的一些小精灵。然而,野生的小精灵并不那么容易被收服。对于每一个野生小精灵而言,小智可能需要使用很多个精灵球才能收服它,而在收服过程中,野生小精灵也会对皮卡丘造成一定的伤害(从而减少皮卡丘的体力)。当皮卡丘的体力小于等于0时,小智就必须结束狩猎(因为他需要给皮卡丘疗伤),而使得皮卡丘体力小于等于0的野生小精灵也不会被小智收服。当小智的精灵球用完时,狩猎也宣原创 2020-07-30 10:26:53 · 402 阅读 · 0 评论 -
【动态规划】数字组合-背包问题中求方案总数
原题描述有n个正整数,找出其中和为t(t也是正整数)的可能的组合方式。如:n=5,5个数分别为1,2,3,4,5,t=5;那么可能的组合有5=1+4和5=2+3和5=5三种组合方式。输入输入的第一行是两个正整数n和t,用空格隔开,其中1<=n<=20,表示正整数的个数,t为要求的和(1<=t<=1000)接下来的一行是n个正整数,用空格隔开。输出和为t的不同的组合方式的数目。样例输入5 51 2 3 4 5样例输出3解题背包问题中的求方案总数,状态转移原创 2020-07-30 10:03:21 · 1139 阅读 · 0 评论 -
【动态规划】Charm Bracelet-背包
原题描述Bessie has gone to the mall’s jewelry store and spies a charm bracelet. Of course, she’d like to fill it with the best charms possible from the N(1 ≤ N≤ 3,402) available charms. Each charm iin the supplied list has a weight Wi(1 ≤ Wi≤ 400), a ‘desira原创 2020-07-30 09:56:53 · 194 阅读 · 0 评论 -
【动态规划】背包问题练习题-装箱问题(NOIP2011)
刚学习完背包问题,可以用来练练手原题OJ描述有一个箱子容量为V(正整数,0<=v<=20000),同时有n个物品(0< n<=30),每个物品有一个体积(正整数)。要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入第一行是一个整数V,表示箱子容量。第二行是一个整数n,表示物品数。接下来n行,每行一个正整数(不超过10000),分别表示这n个物品的各自体积。输出一个整数,表示箱子剩余空间。样例输入2468312797样例输出0代原创 2020-07-29 16:18:03 · 435 阅读 · 0 评论 -
【动态规划】采药问题
原题连接描述辰辰是个很有潜能、天资聪颖的孩子,他的梦想是称为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?输入输入的第一行有两个整数T(1 <= T <= 1000)原创 2020-07-29 16:13:27 · 911 阅读 · 2 评论 -
【动态规划DP】开餐馆
题目:原题连接描述北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择。小明打算从中选择合适的位置开设一些餐馆。这 n 个地点排列在同一条直线上。我们用一个整数序列m1, m2, … mn 来表示他们的相对位置。由于地段关系,开餐馆的利润会有所不同。我们用pi 表示在mi 处开餐馆的利润。为了避免自己的餐馆的内部竞争,餐馆之间的距离必须大于k。请你帮助小明选择一个总利润最大的方案。输入标准的输入包含若干组测试数据。输入第一行是整数T (1 <= T <= 1000)原创 2020-07-29 10:26:27 · 1968 阅读 · 1 评论