摘要: 每次都寻找长度为k的区间内的最小值显然很容易超出时间限制 所以可以把窗户看作一个数量固定的队列 每次观察入列与出列的元素对答案贡献如何,以更新答案 #include<stdio.h> int tmp[1000010],max[1000010]; int gmax(int i,int k) { int 阅读全文
posted @ 2020-01-26 22:42 StelaYuri 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 因为放一个就需要判断一次,每一次跑一遍全图bfs显然是不现实的 又因为点只有三种,黑白无 所以可以用并查集优化 添加一个棋子就判断周围四个的组别情况 注意出现的情况与答案关系之间的判别 #include<stdio.h> #include<memory.h> int N,M,dx[4]={1,0,- 阅读全文
posted @ 2020-01-26 22:08 StelaYuri 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 追踪1号队员,取他回到原来位置需要的次数 #include<stdio.h> int main(){ int T,t,n,ans,x; scanf("%d",&T); for(t=1;t<=T;t++){ scanf("%d",&n); ans=x=1; while(x!=n+1){ if(x>n) 阅读全文
posted @ 2020-01-26 21:23 StelaYuri 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 根据题目输入可以得到一个有向图 信号可以根据有向图的传递性传递,因此可以说是找到这个有向图的所有父亲即可 但又要考虑可能会出现环这类情况 所以跑一遍强连通分量模板,再根据分块后的图找到入度为0的块,把这些块当作信号发出源,就可以使全图都能够收到信号 所以答案就是入度为0的块的数量 (因为跑完程序刚好 阅读全文
posted @ 2020-01-26 21:14 StelaYuri 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 在影子没有到达墙角前,人越远离电灯,影子越长,所以这一部分无需考虑 所以只需要考虑墙上影子和地上影子同时存在的情况 因为在某一状态存在着最值 所以如果以影子总长与人的位置绘制y-x图像 会呈一个类似y=-x^2函数的图像 所以就可以根据三分法找出最值点 #include<stdio.h> doubl 阅读全文
posted @ 2020-01-26 21:05 StelaYuri 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 打表找规律吧…… 一定要记得每一步都得开long long 然后可以发现所有的森哥数每一位只可能是0,1,2,3 就可以想到最高O(3^9)的算法 枚举1e9之内的所有满足条件的数判断 枚举9位数,最后1e9整无法枚举到 特判一下 #include<bits/stdc++.h> using name 阅读全文
posted @ 2020-01-26 17:03 StelaYuri 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 因为最大可以达到int极限 明显直接筛选不可能完成 所以从其因子入手 因为任何不是素数的数都有除了1与其自身之外的因子 因此,我们筛出2^(31/2)≈46350之内的所有素数,以其作为因子再将题目给定区间内的所有不是素数的数标记排除 然后将素数存放在prnum这个vector集合中便于调用 在排除 阅读全文
posted @ 2020-01-26 00:45 StelaYuri 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 将所有航线的其中一边排序后,另一边进行类dp 定义一个数组c,c[i]表示在所有能够开通i条航线的组合中,位置序号最大的那条航线的序号的最小值 比如下面一个样例 1 3 2 4 3 1 4 2 此时对于航线左边的位置序号已经是排好序的了 那么只需要考虑右边的情况 在所有只开通1条航道的组合中 右侧出 阅读全文
posted @ 2020-01-25 23:52 StelaYuri 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 某个村庄i可以打一口井取水花费费用Wi,也可以与有水的村庄连接取水 又因为不可能没有一个村庄不打井(即至少有一个村庄打井,其余村庄连向它) 实际上就可以理解为,将水井看作第N+1个村庄,需要有村庄与这个N+1村庄相连,才能保证所有村庄有水 而村庄i连接到村庄N+1的费用,就可以直接理解为打井的费用W 阅读全文
posted @ 2020-01-25 22:41 StelaYuri 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 双层枚举嫌疑犯与当日是星期几,统计真话与假话是否满足题意 注意 fake<=N&&fake+neutral>=N 即假话数量不大于N,假话加上没用的废话数量不小于N (注意OJ上的数据存在问题:冒号后跟一个空格,CHARLES的话最后的句号‘.’应为半角,非全角) 可用样例输入: 3 1 5 MIK 阅读全文
posted @ 2020-01-25 21:30 StelaYuri 阅读(169) 评论(0) 推荐(0) 编辑