ICode9

精准搜索请尝试: 精确搜索
  • 交互题2022-09-06 20:02:19

    1、Dragon Balls 暴力求解,把每次可能的值都求出来,然后逐个比较。 #include<bits/stdc++.h> #define int long long int using namespace std; int x, n; typedef pair<int, int> pii; vector<pii> vet; signed main(){ cin >> n; while(n -- ){ cout <

  • 2022 ccpc 广东省赛 F 望舒客栈的委托2022-08-07 14:01:28

    当成大模拟写了,就是开了四个set辅助 今天才知道set的find函数是logN的,因为里面封装了红黑树(喵喵喵? re了一发,又t了一发 理论上模拟的时间复杂度不会t,所以猜测是因为set没写好,没找到东西,卡了 re了应该是数组没开够 修修改改终于补了队友赛时过的题,码量还是不够,继续努力啊 #include<

  • openlayers3 getJson格式2022-07-21 13:00:12

    <!DOCTYPE html> <html>   <head>     <title>GeoJSON</title>     <link rel="stylesheet" href="http://openlayers.org/en/v3.13.0/css/ol.css" type="text/css">     <script src="http://ope

  • abc246_d 2-variable Function2022-04-03 11:35:42

    考虑到i不大于1e6,而使得f(i,j)大于n的最小的j是随i的增加单调减的,因此枚举即可。 // // Created by vv123 on 2022/4/2. // #include <bits/stdc++.h> #define f(i,j) i*i*i+i*i*j+i*j*j+j*j*j using namespace std; typedef long long LL; int main() { LL n, ans = 1e18, j

  • ZROI2017 做题笔记2022-03-07 10:02:47

    B2064 斐波那契数列 递归函数的写法应该是: 1 int f(int n) 2 { 3 if (n <= 2) return 1; 4 return f(n - 1) + f(n - 2); 5 } 改成非递归的手工栈需要储存函数参数、时间戳和答案,比较恶心但也的确是 C++ 递归函数内部代码的形式。 1 const int N = 1e6 + 10; 2 int s

  • 构造2022-02-20 18:32:48

    CF1270G Subset with Zero Sum:给定长度为n (1e6) 的数列a1,a2,a3……an(),找到这些数的一个和为0的非空子集。  

  • P4913 二叉树深度2022-02-16 16:32:47

    1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 const int N = 1e6 + 10; 6 7 int ok = 0; 8 9 int n; 10 struct node 11 { 12 int l, r; 13 } t[N]; 14 15 void dfs(int i, int s) 16 { 17 if(i == 0) return; 18 ok = max(ok,

  • P1091 [NOIP2004 提高组] 合唱队形2022-02-01 16:33:30

    原来错一道题可能不止错在少剪枝,还可能这压根就不是搜索题 题目传送门 第一反应:这不每个点左搜一遍右搜一遍然后比大小吗 点击查看search #include<iostream> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; int n,a[10010],ansl=1e6,ansr=1e6,ans=

  • AcWing 2041.干草堆2022-01-07 23:03:39

    题目传送门:https://www.acwing.com/problem/content/2043/ 解题思路:数据范围1e6,不是很大,差分即可,线段树都用不上。 通过差分,进行区间加高指令;然后遍历一边,前缀和还原数组;接着来个sort排序,最后输出中间值即大功告成。 代码如下: #include<iostream> #include<algorithm> #include<

  • 快速排序。2021-12-07 19:03:21

    #include <bits/stdc++.h> using namespace std; const int N=1e6+10; int n; int q[N]; void quick_sort(int q[],int l,int r) { if(l>r)return;//排序完毕,返回。 int x=q[l],i=l-1;j=r+1;//设置一个x将数组中的数值分为两个部分,设置i,j初始分别-1,+1防止越界。 while(

  • 素数筛选法(埃氏筛 欧拉筛)2021-11-05 12:59:15

    质数筛选法 文章目录 质数筛选法 前言一、埃氏筛 O ( n l o

  • CF165E Compatible Numbers2021-10-31 07:31:09

    题面 solution 若 \(a\& b = 0\),设 \(c\) 为 \(a\) 中去掉几个 \(1\)。 则 \(c \& b = 0\)。 直接 \(O(n)\) 递推就好了。 \(f[i | (1 << j)] = f[i]\) #include<bits/stdc++.h> using namespace std; const int MAXN = 1e6 + 5; int read() { int x = 0, f

  • 1013 Battle Over Cities (25 分)——段错误分析2021-09-30 21:03:08

    题目链接 分析 思路就是并查集求连通块,答案等于连通块的数量-1 段错误是因为M的范围大于1e5,我把数组开到1e6就能过 AC代码 #include<bits/stdc++.h> using namespace std; const int N = 1e6+9; int p[N]; int find(int x) { if(x!=p[x]) p[x]=find(p[x]); return p[x];

  • Command Sequence-题解2021-09-05 19:02:42

      这个题有很多做法,我只解释我的做法,首先我们知道U-D,L-R是相互抵消的,然后找这一个序列里面多少个区间是抵消回到原点的 那我们这么想,把U-D看成(1,-1),L-R看成(1e6,-1e6),这样就可以转换成一个一维数组区间和为0的个数,为什么是看成(1e6,-1e6) 是因为题数据n的范围最大是1e5,假如把L-R看

  • CSUST 简单数学题 题解(质因子分解+并查集)2021-07-31 20:34:48

    题目链接 题目大意 注意数据范围,因为区间范围最多\(1e6\),所以只要考虑\(1e6\)以内的质因子即可 然后用并查集维护一下集合即可 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<int,int> pii; #define

  • 要变强,不空喊,ak题目,继续向前。(背包DP优化+bitset应用)2021-06-06 11:00:42

    传送门 题意:   题解:分组背包复杂度O(1e10),bitset优化O(1e10/32) bitset深入学习:C++ bitset 用法 代码: /* https://ac.nowcoder.com/acm/contest/16806/C: 要变强,不空喊,ak题目,继续向前。 1.数据范围较小,背包问题,复杂度1e2*log(1e2)*1e6 emmm写完才发现不是多重背包,而是分组背包,

  • UVA10125 Sumsets2021-05-24 13:04:12

    Sumsets 给定数集 \(S\),求互不相等的四个数满足 \(a+b+c=d(a,b,c,d\in S)\) 中 \(d\) 的最大值。 转化为 \(a+b=d-c\),然后是套路的 meet in the middle。 使用手写 Hash_Table 可以少一个 log,但是常数略大。 #include<cstdio> #include<cstring> #include<algorithm> #include<c

  • P1296 奶牛的耳语2021-04-03 22:35:31

    先将所有奶牛的坐标从小到大排序,然后通过双指针(也可以二分)查找第一个超出第\(i\)头奶牛交流范围\(d\)的奶牛的坐标\(r\),同时答案累加上\(r-i-1\)(和第\(i\)头奶牛范围不超过\(d\)的奶牛数,减一是除去第\(i\)头奶牛自身)。 const int N=1e6+10; int a[N]; int n,d; int main() {

  • 活动调度2021-02-23 09:04:08

    假设要用很多个教室对一组活动进行调度。我们希望使用尽可能少的教室来调度所有的活动。 输入要求: 第一行为活动的个数 N(1<=N<=1 000 000) 。 接下来 N 行为 Si 和 Fi(0<=Si<Fi<=2 000 000 000) ,分别代表第 i 个活动的开始时间和结束时间。活动 i 的区间段为 [Si,Fi) 输出要求:

  • AcWing 790. 数的三次方根2021-02-05 10:02:03

    刚开始看到这个还是有点懵的,后来说是二分,我就想到了浮点二分,浮点二分都是基础的基本知识,我的栏目也有,有兴趣可以关注一下,有模板。 最后说一下浮点数的比较(两个浮点数相等是用相差是否小于eps) eps设题目要求的精度+2。本题给了6,就设eps=1e-8 直接上代码吧。 #include<iostrea

  • 洛谷 P4391 [BOI2009]Radio Transmission 无线传输(KMP)2021-02-04 10:32:04

      假设字串长度为 x,字符串从 1 开始计数 next[1]=next[2]=……next[x]=0 next[x+1]=1 next[x+n]=n 发现从 x+1 位置开始,next 数组逐渐递增 1 所以答案为 n-next[n]  const int N=1e6+5; int n,m; int i,j,k; char a[N]; int f[N]; void getfail(char *s)

  • 矩阵乘法2021-01-03 23:58:25

    nm矩阵 与mk矩阵相乘 结果是n*k的矩阵 那是如何得到的呢? 我们设a[100][100],b[100][100],c[100][100] a是第一个矩阵,b是第二个,c是运算后的矩阵; c[0][0]=a[0][0]*b[0][0]+a[0][1]*b[1][0]+…+a[0][n-1]*b[n-1][0]; c[0][1]=a[0][0]*b[0][1]+a[0][1]*b[1][1]+…+a[0][n-1]*b[n-

  • 给定数n,求n!的p进制下有多少个后导零2020-12-13 10:32:46

      题目描述 这是一道很简单的中学数学题: 给定数n,求n!的p进制下有多少个后导零。非常简单。 为了简化问题,p保证为素数。 输入描述:   第一行给定一个数t,表示有t组输入 接下来t行,每行给定两个数n,p;意义如题所示; 输入范围:(t<=1000) (1<=n<=1000000 ) (2<=p<=1000000) 输出描述:

  • 基础DP2020-12-02 22:02:01

    https://vjudge.net/contest/409169#problem/A A - Max Sum Plus Plus 题意:将一个长度为n的序列,分成m段不相交叉的子段,使得他们的和最大。 解题思路:状态dp[i][j]表示前j个数分成i组的最大值。 动态转移方程:dp[i][j]=max(dp[i][j-1]+a[j],max(dp[i-1][k])+a[j]) (0<k<j) dp[i][j-1]

  • 「一本通 1.1 练习 3」线段2020-07-26 15:03:34

    题目大意 题目:线段 大致题意: 与 活动安排 相同,唯一不同的是换了数据范围。 思路解析 数据范围增大并不影响我们之前的解法,因为是O(nlogn)的解法,1e6的数据能过得去。 程序注释 #include <iostream> #include <algorithm> using namespace std; const int N=1e6+5; int n,ans; s

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

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

ICode9版权所有