ICode9

精准搜索请尝试: 精确搜索
  • 洛谷 P1076寻宝题解--zhengjun2022-06-10 20:01:10

    题面传送门 思路 首先,一看就是一道模拟,然后这个是暴力代码(50分) #include<bits/stdc++.h> using namespace std; int n,m,x; int a[10001][101],b[10001][101],c[10001]; int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=0;j<m;j++) scanf(&q

  • The Cow Lexicon S2022-06-06 14:04:09

    题目描述 Few know that the cows have their own dictionary with W (1 ≤ W ≤ 600) words, each containing no more 25 of the characters 'a'..'z'. Their cowmunication system, based on mooing, is not very accurate; sometimes they hear words that

  • AtCoder 题目乱做2022-05-31 12:31:37

    NOMURA Programming Contest 2022(AtCoder Beginner Contest 253) A - Median? 无脑比大小即可。 Code namespace LZX { using namespace std; int _main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); if((a<=b&&am

  • CF1468H K and Medians 题解2022-05-28 16:32:49

    每次删数都会删恰好 \(k-1\) 个,所以删的数总个数必须是 \(k-1\) 的倍数。考虑最终状态,如果所有数左边不足 \(\frac{k-1}{2}\) 个删掉的数或右边不足 \(\frac{k-1}{2}\) 个删掉的数,那么最后一步是无法实现的。否则,实现了最后一步之后,就可以很轻松的实现前面那些步(可以把最后一步删

  • 324 最近公共祖先 倍增算法2022-05-28 13:32:02

    视频链接: // P3379 【模板】最近公共祖先(LCA) #include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; const int N=5e5+10; int n,m,s,a,b; vector<int> e[N]; int dep[N],fa[N][20]; void dfs(int u, i

  • 倍增总结2022-05-20 16:32:52

    日期:2022年5月20日 注:本博客仅供参考   概念 倍增,顾名思义,每次增加一倍。展开来说,就是每次根据已经得到的信息,将考虑的范围增加一倍, 从而加速操作。 应用 倍增的应用主要是三个方面:快速幂、线性(RMQ问题)、树(LCA问题)。 代码实现 快速幂及其应用 【模板】快速幂(P1226) 1 #include<

  • 组队赛-152022-05-20 01:33:22

    做了C题,找规律         在最小循环节里统计不同数的个数就行 #include <iostream> #include <cstring> #include <algorithm> #include <math.h> using namespace std; typedef long long ll; const int N=1e7+10; bool st[N]; signed main() { int p; ll n;

  • 1414:【17NOIP普及组】成绩2022-05-13 15:34:19

        #include<cstdio> using namespace std; int a,b,c,s; int main() { scanf("%d%d%d",&a,&b,&c); s=a*0.2+b*0.3+c*0.5; printf("%d",s); return 0; }  

  • 2053:【例3.3】三个数2022-05-13 15:32:01

    【题目描述】 输入三个整数,按从大到小的顺序输出。 【输入】 输入三个整数 【输出】 按从大到小的顺序输出。 【输入样例】 3 2 1 【输出样例】 3 2 1 #include <stdio.h> int main() { int a,b,c,t; scanf("%d%d%d",&a,&b,&c); if(a<b) { t=a;

  • 【差分】Acwing798.差分矩阵2022-05-08 10:04:20

    Acwing798.差分矩阵 题解 #include <iostream> #include <cstdio> using namespace std; const int N = 1e3+10; int s[N][N]; void insert(int x, int y, int xx, int yy, int c) { s[x][y] += c, s[xx + 1][yy + 1] += c; s[xx+1][y] -= c, s[x][yy + 1]

  • 【前缀和】Acwing796.子矩阵的和(二维前缀和)2022-05-08 09:35:05

    Acwing796.子矩阵的和(二维前缀和) 题解 #include <iostream> #include <cstdio> using namespace std; const int N = 1e3+10; int s[N][N]; int main() { int n, m, q; scanf("%d%d%d",&n,&m,&q); for(int i = 1; i <= n; ++i)

  • 基础算法 841.字符串哈希2022-05-07 20:34:34

    也叫字符串前缀哈希法。 例如字符串“ABCDEFGH”。 用h[0], h[1], h[2]......h[n]分别表示前n个字符的子串的哈希值。 将字符串看作为p进制的数字,再将其mod一个数,得到哈希值。 经验上来说,p一般为131,或1331。 mod的数为2^64。unsigned long long如果溢出,就相当于对它取模。 #inclu

  • Not Shading(codeforces)2022-05-06 12:00:06

    ​ 题目:​   题目链接:Problem - A - Codeforces  题目大意解读: 题目大意是给你一个存在黑和白的方格(可能存在全是黑色或者白色),你要通过使存在黑格的那一行或列变黑,来找到使目标位置变成黑色的最小步骤。 解题步骤: 可以很容易的找到 只存在如下几种情况: 1.全为白格,直接输出-1,表

  • 5.3模拟赛2022-05-03 22:01:45

    T1 想了一会儿证了一下性质就出来了 T2 乍一看,背包板子(但数据范围不对 仔细一看,v<=3从这方面下手,物品按体积分为三类,枚举一类,三分一类,另一类应变,最后O(nlogn) T3 性质:选点顺序与最后的答案无关 所以我们可以枚举该点选不选,然后O(n)维护当前的连边(用二进制表示),然后就行了 (我考场上

  • 基础算法 836.合并集合2022-05-02 17:02:41

    并查集,使用数组实现,find函数中使用了巧妙的递归 #include<iostream> using namespace std; const int N = 100010; int p[N]; int find(int k){ if(p[k] != k) p[k] = find(p[k]); return p[k]; } int main(){ int m,n; scanf("%d%d",&m,&n); f

  • Feast2022-04-30 08:01:38

    题目背景 有一天Alice在玩一个游戏,她拥有一个容量上限为 T 升的水桶,一开始里面没有水。 她可以进行以下三种操作: 往水桶里倒 \(A\) 升水。 往水桶里倒 \(B\) 升水。 倒掉水桶里一半向上取整的水,留下一半向下取整的水。换言之,若水桶里有$ x$ 升水,操作之后水桶里还剩 \(⌊x/2

  • Distance Queries2022-04-20 18:31:54

    题目链接:http://poj.org/problem?id=1986 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 const int maxn=40010; 6 int n, m, k; 7 struct edge{ 8 int to, next, weight; 9 }e[maxn<<1]; 10

  • 洛谷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][

  • lower_bound与upper_bound2022-04-09 10:01:44

    洛谷P1102 一句话题意:给一串数和正整数 \(C\) ,求串中 \(A - B = C\) 的数对个数 做法:排序,对每个 \(a_i\) ,找upper_bound - lower_bound即是 \(a_i - C\) 的个数 #include<bits/stdc++.h> using namespace std; const int N = 2e5 + 10; int n, c, a[N]; int main(){ scanf("%d%d"

  • 洛谷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

  • 实验任务42022-03-27 18:34:27

    #include<stdio.h> int main() { int age1,age2; char gender1, gender2; scanf("%d%c%d%c",&age1,&gender1,&age2,&gender2); printf("age1 = %d, gender1 = %c\n",age1, gender1); printf("age

  • 残缺的棋盘2022-03-27 14:02:53

    别小看这个题,通过率很低的,比赛的时候我改了好多次最后才改出来 考虑什么时候两者的最短路径是唯一的 一:两者刚好在对角线的时候 二:两者同列或者同行 对于第一种情况,如果缺点恰好在其对之间的对角线上(之外的对角线肯定不会造成影响),最短路就会改变+1 对于第二种情况,如果缺点刚好处

  • 实验42022-03-26 21:01:48

    #include <stdio.h> int main() { int age1, age2; char gender1, gender2; scanf("%d%c%d%c", &age1, &gender1, &age2, &gender2); printf("age1 = %d, gender1 = %c\n", age1, gender1); printf("age2 = %d, gender

  • 【C语言】输入3个数赋值给变量a、b、b,要求按由小到大的顺序输出它们2022-03-21 09:36:27

    代码如下 //输入3个数赋值给变量a、b、b,要求按由小到大的顺序输出它们 #include <stdio.h> int main() { int a,b,c,t; printf("Please enter a、b、c:"); scanf("%d%d%d",&a,&b,&c); if(a>b){ //(1)若a>b,则交换a与b位置: b<a c t=a; //其余情况亦是同理 a=b;

  • P1877 [HAOI2012]音量调节 题解2022-03-21 07:34:16

    P1877 [HAOI2012]音量调节  #include<cstdio> using namespace std; int n,begin,maxlevel; int ans; int a[51]; bool f[51][1001]; int main() { scanf("%d%d%d",&n,&begin,&maxlevel); f[0][begin]=1; for(int i=1;i<=n;i++)

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

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

ICode9版权所有