自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 2019中国大学生程序设计竞赛(CCPC) - 网络选拔赛

1.问题描述给了两个正整数A,B,找一个正整数C,使得 (A xor C) & (B xor C) 的结果最小。这样的C可能不唯一,找出最小的那一个。 思路:转化题目:原式可转化为 c和(a&b)的异或,也就是说题目给出a,b的值,那么a&b就是一个定值,那么若使得答案最小,也就是c==a&b就OK了。本质就是一道数学分析题,如果想不到化简可能会很麻烦!...

2019-09-07 20:07:31 308

原创 最短路径问题(Dijkstra迪杰斯特拉算法 O(N^2))

在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?Input输入包括多组数据。每组数据第一行是两个整数N、M(N<=100,M<=10000),N表示成都的大街上有几个路口,标号为1的路口是商店所在地,标号为N的路口...

2019-08-06 16:35:25 354

原创 拓扑排序

给出一个图的结构,输出其拓扑排序序列,要求在同等条件下,编号小的顶点在前。Input若干行整数,第一行有2个数,分别为顶点数v和弧数a,接下来有a行,每一行有2个数,分别是该条弧所关联的两个顶点编号。v<=100, a<=500Output若干个空格隔开的顶点构成的序列(用小写字母)。Sample Input6 81 21 31 43 23 5...

2019-08-05 16:13:21 655

原创 最小生成树(模板题)

某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。Input测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100 );随后的N(N-1)/2行对应村庄间的距离,每行给出一对...

2019-07-25 19:36:28 317

原创 并查集

int find( int p){if(p==a[p]) return p;else return a[p]=find(a[p]);}void union(int p,int q){intpRoot = find(p); int qRoot = find(q); if (pRoot == qRoot) { return; }...

2019-07-25 16:48:43 91

原创 并查集

今天是HJ的生日,他邀请了许多朋友。现在是吃晚饭的时间,HJ想知道他至少需要准备多少桌。必须注意的是,并非所有的朋友都相互认识对方,有的人不愿意和陌生人坐在一桌。针对此问题的一个重要的规则是,如果我告诉你A知道B,B知道C,这意味着,A和C认识对方,这样他们就可以留在一个桌子。但是如果我告诉你,A知道B,B知道C,D知道E,那么ABC可以坐在一起,DE就得另外再坐一桌了。你的任务是请根据输入的朋友...

2019-07-24 20:42:55 123

原创 优先队列

1.优先队列的第一种用法,也是最常用的用法:priority_queue<int>qi;通过<操作符可知在整数中元素大的优先级高。故示例1中输出结果为:9 6 5 3 22.第二种方法:在示例1中,如果我们要把元素从小到大输出怎么办呢?这时我们可以传入一个比较函数,使用functional.h函数对象作为比较函数。priority...

2019-07-23 17:14:05 108

原创 完全背包

在 ACM 能够开展之前,必须准备预算,并获得必要的财力支持。该活动的主要收入来自于 Irreversibly Bound Money (IBM)。思路很简单。任何时候,某位 ACM 会员有少量的钱时,他将所有的硬币投入到小猪储钱罐中。这个过程不可逆,因为只有把小猪储钱罐打碎才能取出硬币。在足够长的时间之后,小猪储钱罐中有了足够的现金,用于支付 ACM 活动所需的花费。但是,小猪储钱罐存在一个...

2019-07-19 19:17:11 81

原创 01背包(优化之前,之后)

涂奥最近迷上了吃鸡,房间有n个配件,每个配件有c(c<=1e3)的重量和v(v<=1e3)的价值,哇,涂奥捡了一个2级包,容量为s,所以涂奥最多当多肥的快递员呢?Input输入的第一行是T,表示有一共要打T场比赛.每组数据由三行组成.第1行包含两个整数n和s第2行包含n个整数,表示每一个配件的价值.第3行包含n个整数,表示每个配件的重量.Output对...

2019-07-19 17:05:47 171

原创 小知识点

1.01背包for(int i=1;i<=n;i++) { for(int j=0;j<=v;j++){ if(wi[i]>j) dp[i][j]=dp[i-1][j]; else dp[i][j]...

2019-07-19 09:28:34 78

原创 dp(动态规划,结构体排序)

很多肥老鼠认为,长的越肥,奔跑速度就越快,为了反驳这个观点,你现在需要对老鼠的体重和速度进行研究,你要在老鼠序列中找出一个子序列,使得老鼠的体重在增加,但是速度却在减慢Input输入以eof结束。输入中每行有两个正整数,分别表示老鼠的体重和速度,范围均在1到10000之间,输入数据最多有1000只老鼠。某些老鼠可能有相同的体重,某些老鼠可能有相同的速度,某些老鼠可能体重和速度都相同...

2019-07-18 16:11:05 380

原创 最大上升子序列的和(dp)

WNJXYK在上体育课。今天体育老师不在,WNJXYK就有时间和同学们一起玩游戏了。突然,YouKnowWho发现,WNJXYK的面前有n个方格,每个方格上面写了一个数字。YouKnowWho突然想起了儿时的“跳房子”游戏。可是作为大学生,怎么能玩这么…低龄…的游戏呢!于是决定树立一个新的规则。WNJXYK可以从方格外开始起跳。他每跳到一个格子上,就可以获得格子上数字那么多钱!但是他下一步...

2019-07-18 09:34:18 113

原创 dp(最长上升,最长公共子序列,最大子序列和,最大下降)

鹏神意外得到了神灯。  神灯中冒出了灯神,灯神说道:“我将给你一个有序的数列,你可以在保证原有顺序不变的前提下,挑出任意多的数。如果你挑出的数字是严格升序的,那么这段数字的个数就是你女朋友的个数。”  “妈的智障。”鹏神骂道。  但是鹏神还是希望自己能有尽可能多的女朋友。所以他求救于你,希望你能帮他算出他最多能有多少女朋友。Input  输入包含多组数据。  第一行是以为整...

2019-07-17 15:27:46 192

原创 dp(数塔)

在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的:有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?已经告诉你了,这是个DP的题目,你能AC吗?Input输入数据首先包括一个整数C,表示测试实例的个数,每个测试实例的第一行是一个整数N(1 <= N <= 100),表示数塔的高度,接下来用N行数字表示数...

2019-07-17 09:08:47 172

原创 贪心算法

交大校队刚从2018焦作站ACM/ICPC回来。现在他有很多作业要做。每个老师给他一个交作业的最后期限。如果他们在最后期限后交作业,老师就会降低他的期末成绩。现在我们假设每个人做作业都需要一天。所以他们想到了要安排做作业的顺序,把降低的分数降到最低。请帮助他们。Input输入包含T个测试用例。输入的第一行是单个整数T,为测试用例的数量。每个测试用例以一个正整数N开头(1<=...

2019-07-16 17:55:10 374

原创 递归(分解因数)

给出一个正整数a,要求分解成若干个正整数的乘积,即a = a1 * a2 * a3 * ... * an,并且1 < a1 <= a2 <= a3 <= ... <= an,问这样的分解的种数有多少。注意到a = a也是一种分解。Input第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (1 < a < 32768...

2019-07-16 16:03:28 456

原创 KMP

XiaoYang有一个一点也不通用的寄存器。之所以说它不通用,是因为它真的很长!XiaoYang有两串数字,分别为 a1, a2, …, aN和 b1, b2, …, bM。今天,Victoryztk问XiaoYang,是否能找到数字 K,使得 aK= b1, aK+1= b2, …, aK+M-1= bM?XiaoYang立刻想起了他的不通用寄存器。可等到XiaoYang找到电路...

2019-07-16 11:16:47 112

原创 小知识点(2)

1.得到next数组:void getnxt(int m){ int i=0,k=-1; nxt[0]=-1; while(i<m){ if(k==-1||b[k]==b[i]){ k++; i++; nxt[i]=k; } else k=nxt[k]; } }int kmp(int n,int m){ int i=0,k=0...

2019-07-16 09:11:10 92

原创 深搜(dfs)(拼正方形)

给定一些长度各异的木棒,请问是否可能把它们连接成一个正方形?输入第一行含有一个数t,代表数据组数。每组数据一行,开头的一个数m,代表有m个木棍。接下来m个数分别是每根木棒的长度。4<=m<=20,木棒长度在1到10000之间。输出每组数据一行,如果能拼出一个正方形输出yes,否则输出no。样例输入34 1 1 1 15 10 20 30 40 5...

2019-07-13 16:56:05 459

原创 BFS(一个素数a变到另一个b所需最少变化次数)

给你两个四位的素数a,b。a可以改变某一位上的数字变成c,但只有当c也是四位的素数时才能进行这种改变。请你计算a最少经过多少次上述变换才能变成b。例如:1033 -> 81791033173337333739377987798179最少变换了6次。Input第一行输入整数T,表示样例数。 (T <= 100)每个样例输入两个四位的素数a,...

2019-07-13 15:24:54 1432

原创 bfs(结合队列,结构体)

在象棋王国,尼古拉斯.火山是一匹英俊的马,他非常幸运迎娶了白马王国的公主,他们将度蜜月,你现在是他们的女仆,火山会问你去一些地方最少需要多少步,这么简单的事当然难不倒你。由于火山是一匹马,他的移动方式将会遵守国际象棋马的走法。输入:输入包含一个或多个输入样例。每个测试样例将会有两个坐标,表示现在的位置和将要到达的地方,每个坐标包含一个字母(a-h)表示列和一个数字(1-8)行,这意味这这...

2019-07-13 11:23:18 331

原创 自定义对结构体排序(sort)

大家都知道,快速排序是不稳定的排序方法。如果对于数组中出现的任意a[i],a[j](i<j),其中a[i]==a[j],在进行排序以后a[i]一定出现在a[j]之前,则认为该排序是稳定的。某高校招生办得到一份成绩列表,上面记录了考生名字和考生成绩。并且对其使用了某排序算法按成绩进行递减排序。现在请你判断一下该排序算法是否正确,如果正确的话,则判断该排序算法是否为稳定的。Inpu...

2019-07-13 10:36:48 1265

原创 二路归并排序(过程中求逆序对)

给定一个1-N的排列A1, A2, ... AN,如果Ai和Aj满足i < j且Ai> Aj,我们就称(Ai, Aj)是一个逆序对。 求A1, A2... AN中所有逆序对的数目。 Input第一行包含一个整数N。 第二行包含N个两两不同整数A1, A2, ... AN。(1 <= Ai<= N) 对于60%的数据 1 <= N &l...

2019-07-13 10:05:48 313

原创 快速排序函数(快排)(没理解)

void quicksort(int a[],int left,int right)//从大到小的快排{ if(left>=right) return; int i=left; int j=right; int key=a[left]; while(i<j){ while(i<j && key>a[...

2019-07-13 09:21:35 395

原创 A

#include<iostream>using namespace std;#define N 1000001int a[N];void quicksort(int a[],int left,int right){ if(left>=right) return; int i=left; int j=right; int key=a[left...

2019-07-12 20:57:06 67

转载 全排列(给4个数字)

Ray又对数字的列产生了兴趣:现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数。Input每组数据占一行,代表四张卡片上的数字(0<=数字<=9),如果四张卡片都是0,则输入结束。Output对每组卡片按从小到大的顺序输出所有能由这四张卡片组成的4位数,千位数字相同的在同一行,同一行中每个四位数间用空格分隔。每组输出数据...

2019-07-12 16:23:53 5878

原创 按照自定义的排序顺序(全排列)

You are to write a program that has to generate all possible words from a given set of letters.Example: Given the word "abc", your program should - by exploring all different combination of the thre...

2019-07-12 11:42:47 614

原创 1500个丑数(优先队列+集合)

丑数是指不能被2,3,5以外的其他素数整除的数。把丑数从小到大排列起来,结果如下:1,2,3,4,5,6,8,9,10,12,15……求第1500个丑数输入没有输入输出The 1500'th ugly number is <number>.#include<iostream>#include<string>#include&lt...

2019-07-12 11:03:26 180

原创 map(二维迭代器的用法)

夏天来了~~好开心啊,呵呵,好多好多水果~~Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了.Input第一行正整数N(0<N<=10)表示有N组测试数据.每组测试数据的第一行是一个整数M(0<M<=100),表示工有M次成功的交易.其后有M行数据,每...

2019-07-12 10:42:36 500 1

原创 map(注册用户统计名字次数)

在不久的将来,一种新的电子邮件服务 "Berlandesk" 将在 Berland 开放。网站管理员想要尽快发布他们的项目,因此请您提供帮助。请实现网站注册系统的原型。该系统应当按以下的原理工作。每当一个新的用户想要注册时,他向系统发送一个包含了自己name的请求。如果系统数据库中不存在这样的name,则它被插入到数据库中,并且用户获得反馈OK,确认注册成功。如果系统数据库中已存在...

2019-07-12 09:54:02 280

原创 map(映射问题)单词的对应关系

你刚从滑铁卢搬到一个大城市。这里的人讲一种难以理解的外语方言。幸运的是,你有一本字典来帮助你理解它们。Input输入内容包括多达100000个字典条目,后面是一个空行,后面是一条多达100000个单词的消息。每个字典条目都是一行,包含一个英语单词,后跟一个空格和一个外语单词。字典里没有外文词出现过一次。信息是外语中的一系列单词,每行一个单词。输入中的每个单词都是最多10个小写字母的序列。...

2019-07-11 20:38:27 1918

原创 N个数全排列的第M个排列是?(全排列)

给你N个整数,分别是1,2,3,。。。N。问你全排列的第M个排列为多少?Input输入包含几个测试用例。每个测试用例由两个数字组成,N和M(1<=N<=1000, 1<=M<=10000). 你可能会假设总有一个序列满足题目需求。输入在文件结束时终止。Output对于每个测试用例,您只需要输出满足题目要求的序列。输出序列时,应该在两个数字之间打印空格,但不要...

2019-07-11 19:45:09 1981

原创 优先队列(看病优先问题)

看病要排队这个是地球人都知道的常识。不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来先服务的原则。所以医院对每种病情规定了10种不同的优先级。级别为10的优先权最高,级别为1的优先权最低。医生在看病时,则会在他的队伍里面选择一个优先权最高的人进行诊治。如果遇到两个优先权一样的病人的话,...

2019-07-11 19:43:54 277

原创 小知识点

1.可以用s.substr(x,y)来截取字符串,s是一个字符串,此函数返回s字符串的s【x】到s【y】的内容。2struct patient{ int k,x; bool operator < (const patient &a) const { if(a.x!=x) return a.x>x;表示如果结...

2019-07-11 15:30:58 97

原创 set集合(找是否有一个单词由其他两个单词构成)

You are to find all the two-word compound words in a dictionary. A two-word compound word is aword in the dictionary that is the concatenation of exactly two other words in the dictionary.InputStan...

2019-07-11 15:27:53 308

原创 集合的合并(两种思路)

给你两个集合,要求{A} + {B}.注:同一个集合中不会有两个相同的元素.Input每组输入数据分为三行,第一行有两个数字n,m(0<n,m<=10000),分别表示集合A和集合B的元素个数.后两行分别表示集合A和集合B.每个元素为不超出int范围的整数,每个元素之间有一个空格隔开.Output针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素...

2019-07-11 11:46:48 9299 1

原创 map(计数找最多)

在ACM比赛中,每个题目都会有一个相对应颜色的气球。每当你AC一道题目的时候,便会有一个气球升起。但是eternal太弱了又不想爆0,所以他每次都会去寻找AC数目最多的题目去做,请你帮他找到相应的颜色。Input输入包含多组数据。每组数据第一行包含整数N (0 < N <= 1000) -- 代表气球的总数. 接下来的N行每行包含一个颜色的单词. 单词最多由15个小写字母组成...

2019-07-11 11:26:46 113

转载 c++容器

STL容器(Stack, Queue, List, Vector, Deque, Priority_Queue, Map, Pair, Set, Multiset, Multimap)一、Stack(栈)这个没啥好说的,就是后进先出的一个容器。 基本操作有:1 stack<int>q;2 q.push(1); //入栈3 q.pop(...

2019-07-11 09:34:14 65

转载 棋盘问题(dfs)

在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n...

2019-07-11 09:05:46 91

转载 挖宝藏(bfs)

蒟蒻梦见一片充满宝藏的沙滩, 它是由若干正方形的块状土地组成的一个W*H矩形区域. 蒟蒻决定挖出这片沙滩所有的宝藏,成为传说中的宝藏男孩. 不幸的是,在他挖第二块地时就触发了埋藏其中的地雷,直接炸醒. 他恍然大悟,原来这片沙滩上的每一块地,除了宝藏,还有可能是地雷!故事没有就这样结束. 第二天,他又做了相同的梦...编写一个程序,计算出蒟蒻在被炸醒前可能挖到宝藏的最大数量.Inpu...

2019-07-10 17:58:17 365

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除