自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 问答 (1)
  • 收藏
  • 关注

原创 P2638 安全系统

这道题考察的是高中数学知识,排列组合,隔板法。还没有学过或者忘记了的小可爱去看一下百度词条哦~ 点击这里查看隔板法题目中有句话容易读错,每个储存区最多能存储存2个种类不同的信号.,是存储两个种类不同的信号,不是两个信号.对于本题而言换句话说就是任何一个存储区都可以存储无线个信号题目中还说了 存储区可以不用存储信号~问题转化为这个:有a个红球,b个白球.将这些白球和红球放到不同的盒子里面,问有多少种不同的分法,首先a个红球分配到n个盒子有多少种分法,假如说是x1,b个白球分配到n个盒子有多少种分法..

2020-05-26 20:27:23 352

原创 P3913 车的攻击

这道题的数据量有点对不上,其实N是没有10^9的.N最大不会超过10^6如果数据是10^9的话 那么unordered_map才是正解#include <iostream>#include <unordered_map>using namespace std;unordered_map<int ,int > r;unordered_map<int ,int > c;typedef long long int ll; int main(.

2020-05-24 10:51:07 178

原创 P2822 组合数问题

这道题本身倒是不难,但是卡时间卡的太严重了。对于t是10^4次方查找,我们递归将C(n,m)求出来,并用一个数组记忆化保存,然后对于每次查询,我们循环遍历就可以了~#include <iostream>#include <cstring>using namespace std;#define Max 2005typedef long long int ll;ll C[Max][Max];ll get_c(int n,int m); int main()...

2020-05-23 14:38:47 664 1

原创 P1866 编号

可能是DFS写多了,看到这种题直接暴搜,结果T掉了7个点…T7点代码:#include <iostream>#include <cstring>using namespace std;#define Max 1005int t[Max];bool flag[Max];int res=0;int n,num=0;void dfs(int i,int t[]); int main() { cin>>n; .

2020-05-22 12:28:46 499

原创 P1017 进制转换

这道题实际上是一道数学题~首先我们要清楚余数:15 / 4=3…315 / -4=-3…3-15 / 4= -3…-3-15/-4=3…-3开始我也不知道负数除以负数的余数是负数…奇怪的知识增加了~然后题目说了十进制数 ,第二个是负进制数的基础.十进制数可正可负 ,但是第二个负进制数一定是负数.所以我们求以前进制数的时候,余数都是正数对不对,但是这里可能会出现负数.例如上面的:一个负数除以一个正数或者负数的余数都等于负数.但是最后结果不能有负数怎么办呢?很简单,我们只需要让余数-除数..

2020-05-22 11:51:55 292

原创 P1100 高低位交换

很简单的模拟题~注意开long long int 下面是ACcode~#include <iostream>#include <vector>#include <algorithm>using namespace std;typedef long long int ll;vector<int > t; int main() { ll n; cin>>n; int res.

2020-05-21 23:10:25 170

原创 P1469 找筷子

看到数据是10^7, 内存是4MB第一反应:复杂度肯定是0(n) ,用数组肯定会MLE这时候要用到异或^0和任何数异或都等于任何数,0^x=xx和x异或等于0 x^x=0我们只需要最开始设置 res=0,然后不停的与输入的x进行异或,最后得到的结果一定是那个单个筷子ACcode:#include <iostream>using namespace std;int main(){ ios::sync_with_stdio(false); int n..

2020-05-21 22:23:43 354

原创 P1143 进制转换

先转化为10进制,再转换为其他进制数:AC code:#include <iostream>#include <vector>using namespace std;vector<char > t;int main(){ int n,m,num,res=0; char c; cin>>n; string str; cin>>str; cin>>m; for(int i.

2020-05-21 10:46:06 283

原创 P1983 车站分级

这道题层次分明,很显然用拓扑排序:首先要注意审题:如果这趟车次停靠了火车站 xx,则始发站、终点站之间所有级别大于等于火车站 xx 的都必须停靠。(注意:起始站和终点站自然也算作事先已知需要停靠的站点)这句话要理解一下:她说如果停靠在了火车站XX,后面只要是大于等于XX的都必须停靠,但是他没说小于XX的火车站不停靠…就比如上图第一趟火车 :3 2 3 2(火车站的优先等级),我们最开始在优先级为3的火车站,后来又跑到了优先级为2的火车站,所以并不是小于XX的都不停,也有可能停住.注意上面,我们停..

2020-05-21 09:54:20 266

原创 P1347 排序

这道题一看就是拓扑排序,不过细节特别要注意。题目中说了,如果某一步能判断n个字母的大小关系,那么就输出第几步可以判断这些大小关系,并输出从小到大的序列,例如样例1就是第4步就可以判断大小关系了,后面说的看都不用看如果某一步会导致矛盾,就输出导致矛盾的那一步。例如上面的样例2第2步可以判断发生矛盾如果遍历完所有步数都不能判断大小关系,也不能判断矛盾关系,那么就是不能确定了,输出即可。思路:对于每次输入一个字符串,我们都建议一条有向边。然后进行拓扑排序。1.**我们如何去判断是否产生矛盾呢?**我..

2020-05-20 11:25:47 361

原创 P2853 [USACO06DEC]Cow Picnic S

很好的一道图的遍历题目,我们开一个1000*1000的数组,a[i][j]==true,表示i号顶点可以到达j号顶点,a[i][j]=false.表示i号顶点不能到大j号顶点,最后们对k个奶牛分别进行遍历,如果这K个奶牛都可以到达1—N之间的一个点,就把结果+1.当然还有更简单的做法,那就是直接开一个数组a[],a[i]表示这k头奶牛中可以到达i这个点的数量,如果a[i]==k,就把结果+1当然我是用第一种做的,下面是AC代码~#include <iostream>#include ..

2020-05-18 13:04:43 197

原创 P1807 最长路

这道题,第一反应就是SPFA。由于最开始的邻接表没有优化,T了三个点。后来我看了算法笔记才知道。使用SPFA的时候,要在搞一个数组,判断某个节点是否在队列中,如果不在队列中,那么才有资格入队,如果在,就不能入队了,出队的时候将这个元素设置为不在队列中,入队的时候将这个·元素设置在队列中。下面是邻接表的AC代码~#include <iostream>#include <vector>#include <queue>#include <cstring>.

2020-05-15 10:19:39 267

原创 P4017 最大食物链计数

这道题…看到结果要对80112002取模,我就知道数量很大,可我不知道能有这么大…首先测试数据生产者和最高级的食物链顶端可能有多个(亲测)然后我想的是,遍历所有生产者,累加这些生产者到最高级消费者的路径数目,每次加起来就取一次模,害怕数据过大,特地开了long long 结果数据量还是超了,最开始我还以为是我算法写错了,害得我重新检查了一遍。后来我试着在每次dfs都取一下模AC了!!!!,这数据量是有多恐怖。。细思极恐。思路:我们设dp[i]为以i为起点到达最高级食物链的路径条数如图所示,dp[.

2020-05-13 22:09:46 667

原创 P1113 杂务

这道题是一道很好的拓扑排序入门题样例中的图画出来长这样~如图所示,我们可以这样考虑.设dp[i],的意义为从i号节点出发路径的最大值设int time[] 这个数组的意义是完成i号杂物所需要的时间很显然 time[1]=5,time[2]=2,time[3]=3,time[4]=6,time[5]=1,time[6]=8,time[7]=4 ,这样依次赋值就行了最后结果很显然就是 dp[1]=max(dp[2],dp[4])+time[1] ,这样所算出来的dp[1],就是完成所有杂物所..

2020-05-13 16:24:06 551

原创 P3916 图的遍历

这道题很简单…一上来直接DFS#include <iostream>#include <algorithm>#include <queue>#include <cstring>#define Max 100005using namespace std;vector<int > Graph[Max];int flag[Max];void dfs(int v,int Max_v);int res; int main().

2020-05-11 13:46:37 338

原创 P5318 【深基18.例3】查找文献

这道题可把我坑惨了~说两个踩坑点1.样例能过,如果全WA,多半是没有排序2.第三个点WA掉,请注意审题!!!!!使小 K 可以不重复、不遗漏的看完所有他能看到的文章也就是说并不是所有的文章都能被小A看完,我们只需要从1开始看,看完从1开始的强连通部分即可下面是AC代码~#include <iostream>#include <algorithm>#include <queue>#include <cstring>#define M..

2020-05-11 09:57:04 663

原创 P2814 家谱

题目比较简单,一看就想到了并查集,之前做过的并查集都是数字类型的,这次换成了字符串类型,我们就直接使用map,想更快一点就用unordered_map,这样回更快。代码虽然简单,但是还是有一点细节的~建议自己先实现一遍,下面是AC代码#include<iostream>#include <unordered_map>#include <map>using namespace std;unordered_map<string,string> t;..

2020-05-10 22:26:12 217

原创 P3879 [TJOI2010]阅读理解

STL天下第一~,真的不要太方便了。字典树hash统统不存在,我只要STL用map最后一个点会T掉,所以我们使用unordered_map下面是AC代码~#include <iostream>#include <unordered_map>using namespace std;#define Max 10000unordered_map<string,int > t[Max]; int main() { int N,..

2020-05-09 23:53:58 211

原创 P1955 [NOI2015]程序自动分析

这道题思路很简单~依然用到并查集首先,我们执行所有相等的约束条件,也就是说将为1的操作提前。我们合并输入的那两个数字xi xj所在的集合,执行完所有为1的操作以后,我们再执行所有为0的操作,如果发现xi,xj在同一个集合,则可以判断这个程序的约束条件不满足,输出NO,如果执行所有为0的操作以后,都不会出现xi,xj在同一个集合。则输出YES就题目中的样例我们来解释一下~我们截取一部分~41 2 12 3 13 4 11 4 0有4个约束条件,首先执行前面三个,集合合并以后就是这样。...

2020-05-09 22:25:38 305

原创 P1892 [BOI2003]团伙

淳朴的并查集,思路也很简单~思路:如果是两个人是好盆友,很自然就要将他们所在集合合并了,如果不是朋友比如x—y 是敌人1.那么就将x与y的所有除x以外的敌人合并,why?因为敌人的敌人就是朋友了(他们有共同的敌人~)2.除此之外还要将y与x的所有除y以外的敌人合并.why?下面就来解释这个问题~比如上面的样例~假如我们不执行上面的第二点E 1 4 将4与所有1的其他敌人合并,很显...

2020-05-07 22:35:45 278

原创 P1621 集合

这道题比较简单,可能是假的绿题~题目意思说的很清楚了,我们需要找到有多少个集合,集合内部有大于等于p的公共质因子思路:我们首先枚举所有p----b之间的质数,然后将所有<=b的这个质数的倍数的祖先和这个质数的祖先合并,也就是并查集的思想,假设p—b之间的某一个为x,因为x的倍数都有公共质因子x,所以按照题目的描述他们属于同一集合。一直从p—b的范围从小到大进行下去,然后最后求有多少...

2020-05-07 14:57:04 434

原创 P1525 关押罪犯

这道题看到好多dalao用的并查集,看了一下题解看不太懂,还是我太弱,只能用二分图+二分来做。二分图就是将图中的点分成两边,也就是分成两个集合,使得。每个集合中的点之间不会有边相连接。如果有边相连一定是不同集合点相连,关于二分图的判定也很简单:就是看有没有奇数的环,换言之,没有边的图一定是二分图。这就是二分图,看到没,图中两个集合的内部没有边,只有不同集合之间才有边相连接。关于二分图的判...

2020-05-06 17:03:58 211

空空如也

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

TA关注的人

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