ICode9

精准搜索请尝试: 精确搜索
  • 洛谷 P1012 拼数2022-04-22 17:03:21

    #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> using namespace std; int cmp(string s1,string s2){ return s1+s2>s2+s1; } int main() { string s[30]; int n,i; scanf("%d",&n); f

  • 洛谷P1908 逆序对 (树状数组+离散化)2022-04-22 16:00:44

    模板题,树状数组加上离散化求逆序对。 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 const int N=5e5+10; 5 int n,a[N],b[N],c[N]; 6 LL ans; 7 8 int lowbit(int x){ 9 return x&(-x); 10 } 11 12 void ins(int x){ 13 whil

  • NOI2015 洛谷P1955 程序自动分析(并查集+离散化)2022-04-16 14:32:04

    这可能是我目前做过的最简单的一道noi题目了...... 先对e=1的处理,用并查集;再对e=0查询,如果这两个在同一集合中,则为“”NO“,最后都满足的话输出”“YES”; 数值很大,用一下离散化就行了。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1e6+10; 4 int t,n,fa

  • 洛谷P3397 地毯(差分)2022-04-16 11:34:24

    二维平面上的差分,我们可以对每行处理。 比如我们要把(2,2)(5,5)之间的矩形加上1,可以这样处理。 0 0 0 0 0 0 0 +1 0 0 0 -1 0 +1 0 0 0 -1 0 +1 0 0 0 -1 0 +1 0 0 0 -1 0 0 0 0 0 0 那么这道题就简单了。 1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,m,a[1001][

  • 洛谷P2216 HAOI2007 理想的正方形 (单调队列)2022-04-16 11:04:59

    题目就是要求在n*m的矩形中找出一个k*k的正方形(理想正方形),使得这个正方形内最值之差最小(就是要维护最大值和最小值),显然我们可以用单调队列维护。 但是二维平面上单调队列怎么用? 我们先对行处理,将其压缩为一个(n-k+1)*m的矩形;再对列进行处理,最终压缩为一个(n-k+1)*(m-k+1)的矩形,枚举最大

  • 洛谷P2866 [USACO06NOV]Bad Hair Day S (单调栈)2022-04-16 08:31:46

    看到这道题很容易想到单调栈,但我一开始想的是从后往前扫,但发现会有问题(因为这样会对后面牛的答案造成影响),所以这时我们要及时换一个思路,从前往后扫。 维护一个单调递减的栈,插入h[i]时,小等于它的数都要出栈,累加栈中元素数量,表示的意义就是:当前栈中的牛都是可以看到i这头牛的,即他们

  • 洛谷P1364医院设置(树形DP)2022-04-15 22:33:28

    医院设置   本题给我们一棵树还有所有点之间的关系,要我们找到医院设在什么位置的时候,在所有节点上的人到医院所有走的距离和最小。要求的是所有点到某一个节点的距离和最小,我们可以想到树的重心。   树的重心的定义是树若以某点为根,使得该树最大子树的结点数最小,那么这个点则

  • 洛谷P2607 [ZJOI2008] 骑士2022-04-15 22:32:43

    在做这道题之前,可以先去看一下: P1453 城市环路: https://www.cnblogs.com/liyishui2003/p/16150985.html 如果说城市环路是没有上司的舞会的基环树版本 那P2607就是城市环路的基环树森林版本 刚开始开开心心把城市环路的代码改了改输出输入就交了,wa,20tps 挠头,想了想,唉,它没有保证

  • 洛谷P4147 玉蟾宫 (单调栈)2022-04-15 22:02:26

    要求我们去找一个最大矩形面积。 单调栈做法(和P1950 长方形那道题类似(一模一样))。 1 #include<bits/stdc++.h> 2 using namespace std; 3 char M[1010][1010]; 4 int n,m,h[1010],l[1010],r[1010]; 5 int s[1010],top; 6 7 void ddzl(){ 8 top=0; 9 for(int i=m

  • NOIP2015 普及组 洛谷P2671 求和 (数学)2022-04-15 20:32:42

    一道数学题...... 采用分组的思想,我们要统计答案的数对满足两个条件:同奇偶,同颜色。所以可以按这两个要求分组。 然后就是分组处理了,对于每组(有k个数),这里面的任意两对数都是满足条件的,可推出下面的公式: x[k]*(y[k]*(k-2)+y[1]+y[2]+......+y[k]) x[]是数值,y[]是下标。 公式推导还

  • #团,构造#洛谷 3524 [POI2011]IMP-Party2022-04-14 21:31:08

    题目 有一个 \(3n\) 个点的无向图,保证有一个大小为 \(2n\) 的团,输出一个大小为 \(n\) 的团 分析 每次选择两个不相连的点删掉,那么剩下的 \(n\) 个点一定是团, 因为每次至少有一个不在大小为 \(2n\) 的团中的点被删除,所以剩下的点一定在团中。 但是只是最多删除 \(n\) 次,所以输出完

  • 洛谷P4342 [IOI1998]Polygon2022-04-14 14:01:09

    题目 https://www.luogu.com.cn/problem/P4342 我会做IOI题辣 思路 算法设计与分析的课堂例题。 首先这是一个环状DP,那么根据老套路,破环成链。发现要求的东西也很相关,就是求环从哪里断开可取到最优解,然后我们就可以很自信地接着往下做了。 考虑链的情况,是一个很裸的区间DP的形式。

  • 动态规划:洛谷 P1280 尼克的任务2022-04-12 09:34:09

    洛谷 P1280 尼克的任务             这是洛谷的一题绿题,考的是动态规划。我们先想状态转移方程,这是个线性的dp,那么可以考虑每一个时间,dp[]就代表0-此时间内的最大闲暇时间,但发现最大闲暇时间,前面的选择会对后面的选择产生影响,有后效性,所以不妨倒着来,从最后一个时间一直

  • 洛谷P1725 琪露诺 (单调队列/堆优化DP)2022-04-09 09:35:10

    显然的DP题..... 对于位置i,它由i-r~i-l的位置转移过来,容易得到方程 dp[i]=dp[i]+max(dp[i−r],...,dp[i−l])。 第一种:n2的暴力,只能拿部分分。 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=2e5+5,inf=0x3f3f3f3f; 4 int n,l,r,a[N],dp[N],ans=-inf; 5

  • 洛谷P5047 YnOI2019模拟赛T2 题解2022-04-06 19:33:47

    Preface 刚看到题目时还以为是云南省选…… 人生中第一道黑题! 想当年看大佬写猪国杀(那时还是黑题)时无比仰慕,却始终认为NOI/NOI+/CTSC是多么遥不可及的高峰…… 回想一年前,我也就只有橙黄的水平,对稍微高级一点的算法毫无涉猎。当时对OI也没有什么热情,只会线性DP,连深搜广搜都分不清

  • 洛谷P4688 掉进兔子洞 题解2022-04-05 20:34:17

    题面 传送门 给定一个长度为 \(N\) 的序列 \(a\) 以及 \(M\) 次询问,每次询问为三个区间 \([l_1,r_1],[l_2,r_2],[l_3,r_3]\)。把三个区间中同时出现的数一个一个删掉,问最后三个区间剩下的数的个数和。 注意这里删掉指的是一个一个删,不是把等于这个值的数直接删完,比如三个区间是 \(

  • 洛谷 AT2579 题解2022-04-05 18:04:04

    题目传送门 题意: 给定 \(N\) 道题及每道题答对所得的分值,答错不得分,如果最终总得分是 \(10\) 的倍数,则分数为 \(0\),问最多可以获得多少分? 思路: 对于多种情况进行分类讨论: 当最后总得分不是 \(10\) 的倍数时,可以直接输出。 当每题得分都是 \(10\) 的倍数时,不可能出现总得分不

  • 洛谷 P8225 题解2022-04-05 18:03:04

    题目传送门 题意: 定义一个十进制数为 \(k\) 阶天才数,并且需要满足: 该整数的位数是 \(k\) 的倍数。 每一个数位都是 \(9\)。 有 \(t\) 次询问,每次询问给出 \(n\) 和 \(k\),求 \(n\) 是否可以拆分成若干个 \(k\) 阶天才数的和。 思路: 题目求的是 \(n\) 是否可以被 \(k\) 阶

  • 洛谷 AT4171 题解2022-04-05 18:01:44

    题目传送门 题意: 给出两个字符串,可以对其中一个字符串进行操作,将最后一个字符插到最前面,问经过不限次的操作后,是否可以将这两个字符串变成一样的。输出 Yes 或 No。 思路: 这道题可以分几种情况来考虑: 两个字符串一开始就是相等的,不需要操作,直接输出 Yes。 两个字符串的长度

  • NOIP 2013 提高组 洛谷P1967 货车运输 (Kruskal重构树)2022-04-04 19:33:51

    题目: A 国有 nn 座城市,编号从 11 到 nn,城市之间有 mm 条双向道路。每一条道路对车辆都有重量限制,简称限重。 现在有 qq 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。     对于每一组询问,相当于求点x到点y中所有路径中最小边权的

  • 洛谷P3376 (最大流模板)2022-04-04 15:03:13

    1 #include<bits/stdc++.h> 2 #define int long long 3 using namespace std; 4 const int maxn=5005; 5 const int inf=0x3f3f3f3f; 6 int tot,n,m,s,t,x,y,z,d[maxn]; 7 int adj[maxn],nex[maxn<<1],to[maxn<<1],w[maxn<<1],flow[maxn<&l

  • 洛谷P3381 (最小费用最大流模板)2022-04-04 15:01:20

    记得把数组开大一点,不然就RE了。。。 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define int long long 4 const int N=5e5; 5 const int M=5e5; 6 const int INF=0x3f3f3f3f; 7 8 int n,m,s,t,ans,d[N],maxflow; 9 int tot=1,adj[N],nex[M],to[M],cap[M],

  • 洛谷P2517 HAOI2010 订货 (费用流)2022-04-04 15:00:06

    标准的费用流问题,关键在于巧妙地建模 一共有n个月份,源点设为0,汇点设为n+1 1.源点向所有月份连边,容量为正无穷,费用为该月进货的费用 2.每个月向下一个月连边,容量为仓库容量,费用为存货费用 3.每个月向汇点连边,容量为该月卖货的数量,费用为0(卖货不会产生费用) 用最小费用最大流求解即可

  • 利用归并排序求数组中逆序对的数量洛谷p19082022-04-03 19:32:44

    import java.io.InputStreamReader;import java.util.Scanner; public class Main { static long result=0; public static void merge_sort(int q[],int l,int r) { if(l>=r) { return; } int mid=l+r>>1; int k=0;int[] temp=new int[r-l

  • 洛谷第四题2022-04-03 17:04:38

    题目描述 由数字00组成的方阵中,有一任意形状闭合圈,闭合圈由数字11构成,围圈时只走上下左右44个方向。现要求把闭合圈内的所有空间都填写成22.例如:6 \times 66×6的方阵(n=6n=6),涂色前和涂色后的方阵如下: 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有