ICode9

精准搜索请尝试: 精确搜索
  • HRBUST 1377 金明的预算方案2021-07-26 01:34:15

    题目链接:HRBUST 1377 金明的预算方案 题目大意: 题解: 将主件和其附件分为一组,组内包含主件、主件和附件\(1\)、主件和附件\(2\)、主件和附件\(1,2\)至多四个物品。 对所有组进行\(01\)背包,每组只能选一个。 #include <cstring> #include <iostream> using namespace std; int n,

  • 基础算法学习---树的bfs2021-07-22 07:00:06

    模板 //起始位置为u,求v点最短路 //点之间距离为1 int bfs(int u,int v){ int tt = 0,hh = 0; memset(d,-1,sizeof d); d[u] = 0; q[0] = u; while(hh <= tt){ //取出点 int t = q[hh ++]; //遍历一步能走到的点 for(int i

  • 最长上升子序列相关问题笔记2021-07-17 19:34:05

    //求最长上升子序列长度 cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; memset(f,0,sizeof(f)); for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++) if(a[j]>a[i]) f[j]=max(f[j],f[i]+1); } //求最长上升子序列长度和方案 //f[i]表示以i个位置结尾的最长长度 //g[i]代

  • C++ 常用方法2021-07-17 18:01:34

    memest 初始化、置零、清空 extern void *memset(void buffer, int c, size_t count) 功能:将已开辟内存空间 buffer 的首 count 个字节的值设为值 c buffer:为指针或数组 c:赋给buffer的值 count:buffer的长度 // 数组置 0 int a[50]; memset(a, 0, 50 * sizeof(int)); // 字符

  • ACM训练2021_7_16题解2021-07-16 21:35:11

    ACM训练2021_7_16题解 传送门:SDUACM(qd) 20210716 热身训练2 - Virtual Judge (vjudge.net) A 没什么好说的,一个水题 Source Code: #include <iostream> #include<bits/stdc++.h> using namespace std; int t,n; bool judge[7]; int main() { cin>>t; while(t--){

  • 高精度计算 -- 超大数运算2021-07-12 20:05:37

    高精度运算的计算思高精度运算计算中需要处理好以下几个问题:   1) 数据的接收方法和存储方法   数据的接收和存储:当输入的数很长时,可采用字符串方式输入,这样可输入数字很长的数,利用字符串函数和操作运算将每一位数取出,存入数组中。  2)高精度数位数的确定   位数的确

  • P3131 [USACO16JAN]Subsequences Summing to Sevens S2021-07-11 07:00:40

    Problem 给一个长度为\(n\)的序列,求最长连续子序列,满足子序列和是7的倍数。\(n \le 50000\)。 Solution 不难发现先将每个\(a_i \bmod 7\),随后前缀和,令\(q_i = \sum_{j = 1}^i a_j\)。再将\(q_i \bmod 7\)。题目转变为求一个二元组\((i,j)\),使得\(q_j - q{i - 1}\)是0且\(j - i +

  • find a way2021-07-10 15:01:24

    题目: https://vjudge.net/problem/HDU-2612 思路:用两次bfs 之前wa是没有判两人能否到达麦当劳 #include<stdio.h> #include<string.h> #include<queue> using namespace std; int n,m; int v[202][202],vis[202][202],dy[202][202],dm[202][202]; char h[202][202]; struct mai

  • P2055 [ZJOI2009]假期的宿舍2021-07-09 22:00:30

    [ZJOI2009]假期的宿舍 题目描述 学校放假了……有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题。 比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识。我们假设每个人只能睡和自己直接认识的人的床。那么一个解决方案就是 B 睡 A 的床而 C 睡 B

  • NOIP 2017 逛公园 记忆化搜索 最短路 好题2021-07-07 17:53:53

    题目描述: 策策同学特别喜欢逛公园。公园可以看成一张N个点MM条边构成的有向图,且没有 自环和重边。其中1号点是公园的入口,N号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间。 策策每天都会去逛公园,他总是从1号点进去,从N号点出来。 策策喜欢新鲜的事物,它不希

  • 关于数组的初始化2021-07-04 10:02:11

    1、循环法 //一维数组循环初始化 for(int i=0;i<=N;i++) a[i]=1; //二维数组循环初始化 for(int i=0;i<=N;i++) for(int j=0;j<=N;j++) a[i][j]=1; 总结: 就是一顿无脑的循环,一维就一层,二维就二层,三维就三层,无脑,太无脑,浪费手指头。 2、memset法 局限性很强,但网友们

  • 做题记录 POJ 14632021-06-17 09:03:59

    POJ 1463 Strategic game 又是外面的 OJ ... 火车头带着交了,Time Limit Exceeded. 哦,原来有多测。 while(scanf("%d", &n) != EOF) 再交 Accepted. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #def

  • [ SDOI 2016 ] 储能表2021-06-11 12:34:05

    题目 Luogu LOJ Acwing 思路 代码 #include <iostream> #include <cstring> #include <algorithm> #define int long long using namespace std; const int N = 65; int f[N][2][2][2], g[N][2][2][2], T; signed main() { cin >> T; for (int n,

  • 2021-06-092021-06-09 18:02:55

    #include<bits/stdc++.h> using namespace std; int n,m,s,d; const int N=1010; const int M=10010; int mp[N][N]; int dis[N]; int vis[N];//标记是否已经求得该点的最短路 int i,j; void dij(int s){ //s为起点 memset(dis,0x3f,sizeof dis); for(int i=1;i<=n;i+

  • 洛谷P3796 【模板】AC自动机(加强版)2021-06-04 23:56:03

    题目描述 有 NN 个由小写字母组成的模式串以及一个文本串 TT 。每个模式串可能会在文本串中出现多次。你需要找出哪些模式串在文本串 TT 中出现的次数最多。 输入输出格式 输入格式:   输入含多组数据。 每组数据的第一行为一个正整数 NN ,表示共有 NN 个模式串, 1 \leq

  • 【每日一题】41. 德玛西亚万岁 (状态压缩DP)2021-06-04 21:04:43

    补题链接:Here 经典状压DP问题 坑点,注意多组输入。。。 const int N = 16, mod = 100000000; int f[N][1 << N]; int a[N]; void solve() { int n, m; while (cin >> n >> m) { memset(f, 0, sizeof(f)), memset(a, 0, sizeof(a)); for (int i = 1; i

  • C++ memset 踩坑2021-05-31 19:05:41

    文章目录 一、前言 二、函数作用 三、效率对比 四、误区总结 1、按字节设置 2、设置的值只有最低字节有效 3、堆内存不可直接 sizeof 取首地址 4、传参数组不可直接 sizeof 取首地址 一、前言 memset 作为对内存初始化的函数,还是有不少坑和误区的,今天就来对这个函数作一个

  • ZJNU1178 完全背包【基础算法・动态规划】——中高级2021-05-28 09:01:55

    Description 设有n种物品,每种物品有一个重量以及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为m,现在从n种物品中选取若干件(同一种物品可以多次选择),使其重量的和小于等于m,而价值的和为最大。 Input 两个整数m,n(背包容量m<=200, 物品数量n<=30); 每行2个整数分

  • 为图像添加时间戳(获取系统时间,精确到毫秒)2021-05-25 22:53:25

    把时间戳加到图像的前几个像素,前三位是小时,分钟,秒,后两位是毫秒,因为毫秒是四位数 time_t t=time(NULL); std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> tp = std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system

  • 区间dp2021-05-25 20:34:08

    一.什么是区间dp? 顾名思义:区间dp就是在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的 最优解进而得出整个大区间上最优解的dp算法。 二.核心思路 既然让我求解在一个区间上的最优解,那么我把这个区间分割成一个个小区间,求解每个小区间的最优解,再合并小区间得

  • 洛谷入门 dp专题2021-05-25 20:02:33

    比赛链接 质数和分解 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e5 + 9; const int mod = 1e9 + 7; int f[209]; long long num[209]; vector <int> p; int n; void init() { for(int i = 2; i <= 299; ++i) { bool f =

  • 对目录操作2021-05-25 02:05:00

    DIR* dir = opendir(strPath); if (dir == NULL) { perror("opendir err"); return -1; } char bufline[1024] = {0}; struct dirent* dent = NULL; while((dent=readdir(dir))) {

  • 高精度乘法2021-05-24 12:03:48

    高精度加法 #include <bits/stdc++.h> using namespace std; string s1,s2; int main() { string s1,s2; cin>>s1>>s2; int i,j; int a[20050],b[20050]; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); int l1=s1.length(),l2=s2

  • [ABC143E] Travel by Car2021-05-20 20:04:10

    有关Floyd的有趣的图论题。 传送门 解答 \(O(n^3)\)想到Floyd-Warshall算法。 然后就想偏到倍增预处理可达性了……\(O((Q+n)n^2\log n)\) 实际上,第一次floyd()之后可以建出来一个边长为\(1\)的新图,表示可以“一口气”走到。 那么,我们实际上相当于求新图上两个点的最短路,用BFS或再

  • UESTC2021暑假前集训 (树状数组区间修改区间查询)2021-05-18 22:36:56

               这篇博客说的很好了  高级树状数组——区间修改区间查询、二维树状数组 - 胡小兔 - 博客园 (cnblogs.com) 1 #include <cstdio> 2 #include <cmath> 3 #include <cstring> 4 #include <cstdlib> 5 #include <queue> 6 #include <stack> 7 #include <

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

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

ICode9版权所有