package com.nowcoder.service; import org.apache.commons.lang.CharUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import o
四个必要条件: 互斥:每个资源要么已经分配给了一个进程,要么就是可用的 占有和等待:已经得到了某个资源的进程可以在请求新的资源。 不可抢占:已经分配给一个进程的资源不能强制性的被抢占,他只能被占有他的进程显示的释放。 循环等待:有两个或者两个以上进程组成一条环路,环路的每个进程都在
欢迎参加洛谷11月月赛 I & MtOI2019 Ex 本场比赛分 Div 进行, Div.1 稍难,适合冲刺省选,noi 的选手参加 Div.2 较简单,适合所有选手参加 有事请@每道题目对应出题人,详见下图 赛后直播讲解 时间:11月03日(比赛次日)10:0
一种简单的思维 一看到根号就马上想到平方。然后这题就出来了。把左右平方。即也就是已知都为正整数所以为正整数那么为正整数所以,是一个正整数,也就是为一个平方数,是他的因数我们知道所以然后暴力枚举就行了有一点需要十分十分十分注意,本蒟蒻被弄了好几次这个重复,交换也算的,所以就是纯碎的因数个数贴上蒟蒻代码
磁盘结构 盘面(Platter):一个磁盘有多个盘面; 磁道(Track):盘面上的圆形带状区域,一个盘面可以有多个磁道; 扇区(Track Sector):磁道上的一个弧段,一个磁道可以有多个扇区,它是最小 的物理储存单位,目前主要有 512 bytes 与 4 K 两种大小; 磁头(He
刚开始以为比较难,其实发现还挺简单的。。。 首先: 吃下一个美味值 这句话不要理解成吃第二个美味值为ai的才增加满足感。 解决了这个问题就发现题目变得简单了,吃同样多的食物肯定优先吃满足感大的。 所以只需要先排个序,然后从大往小吃就行了 code: #include<c
虚拟内存 虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。 为了更好的管理内存,操作系统将内存抽象成地址空间,每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页,这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必须在物理
https://www.luogu.org/problem/P5601 solution: 这道题用string应该是比较好的(可以直接比较) 然后就是输入的四个选项可以一一判断,如果不想那么麻烦的就存在数组里就好了 code:
进程 进程是资源分配的基本单位 进程控制块(process control block,PCB)描述进程的基本信息和运行状态,所谓的创建进程和撤销进程都是对PCB的操作。 线程 线程是独立调度的基本单位 一个进程中可以有多个线程他们共享进程资源
题目链接: https://www.luogu.org/problem/P5497 分析: 我们如果看一眼题面却没有头绪不妨看一眼数据,一看到 1 0
基本特征 并发、并行 并发是指宏观上在一段时间内能同时运行多个程序, 并行是同一时刻能运行多个指令。 并行需要硬件支持,如多流水线,多核处理器或者分布式计算系统 操作系统通过引入进程和线程,使得程序能够并发执行。
说明 树分治的一种,与点分相似,每次找到两边节点数量相对接近的一条边(与重心相似),然后考虑经过这条边的路径,之后在对边的两边分别考虑。 对于菊花图,如果直接边分,那么复杂度显然会由O(logn)退化成O(n),因此在边分之前,先要rebuild: 统计出每个节点的儿子节点个数,若它大于S(一般为
DownUtil类 package loading; import java.io.InputStreamReader; import java.io.RandomAccessFile; import java.net.HttpURLConnection; import java.net.M
解释 因为getchar()比scanf要快,故为了加快读入,可以用getchar()代替scanf. 思路 利用getchar()将数字读入,若为” “或”\n”结束,第一个字符判断一下数字的正负,然后每读入一个数字就将当前数*10并加上它 代码 inline int re
package 算法题目; //生成一个六位随机字符串 public class RandomStr { /** * @param args */ public static void main(String[] args) { // TODO
M y <mtext> </mtext> b l
package 算法题目; import java.util.*; public class Demo_Test { public static void bubbleSort(int[] arr) { if (arr == null || arr.length < 2
天哪这道题真的是神仙。。。 orz出题人 能出这种dp转移都写吐血的题目真的tql description: 给出n个时间段,可申请m次换课,每次换课可申请从 c [
HashMap和Hashtable都是Java集合类,可以用来存放Java对象 区别: 一:历史原因:Hashtable是基于陈旧的Dictionary,HashMap是java 1.2引进的Map接口的实现 二: 同步性 Hashtable 是同步的,这个类中的一些方法保证了Hashtab
M y <mtext> </mtext> b l
package 集合; import java.util.*; public class 向量 { /** * @param args */ public static void main(String[] args) { // TODO Aut
二分函数直接用 upper_bound()与lower_bound()使用方法 都是二分函数,头文件 upper_bound返回第一个大于的元素的下标; lower_bound返回第一个大于等于元素的下标; #include <iostream>
package 集合; import java.util.*; import java.io.*; public class 信息管理系统 { /** * @param args */ public static void main(String[] args)
description: 求一个既有点权又有边权的无向图中的最小生成树。 solution: 这道题因为一句话: 约翰打算在保持各牧场连通的情况下去掉尽量多的道路。 显然就可以看出是用最小生产树。 仔细读读题,发现唯一的瓶颈就是在处理权值上。 如何将点权和边权都处理呢
/** * 丢手绢问题 */ package practice1; public class lianxi { /** * @param args */ public static void main(String[] args) { //
M y <mtext> </mtext> b l
所示请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy 时间限制:1秒 空间限制:32768K 首先我们从前往后遍历记录空格数目,从后往前插入‘%20’,从后往前的好处体现在: 如图所示:
2019.10.19: 考完初赛感觉并不怎么样,晋级率太低了,怕是过不了了,tg的选择大概出了很多原题? 2019.10.19: 晚上21:00左右,发现出成绩了,69.5,排在了全市50%以后,大概是进不了(此处留坑待填),但是分数线66,过了QAQ
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 时间限制:1秒 空间限制:32768K 解析: 我们首先可以判断出这是一个有序数组,类似于
目前只有S的,谁有J的欢迎提供 答案在试题后面,欢迎留言预估的分数QAQ 欢迎留言自己的分数!!! 反正我是炸了
fout表示写操作 fin表示读操作; #include<iostream> #include<bits/stdc++.h> using namespace std; int main() { fstream fout("test.txt");
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Njhemu/article/details/101868253 快要CSP2019初赛了,再次总结一些初赛知识及技巧,供自己与大家复习。
#include<iostream> #include<bits/stdc++.h> using namespace std; class Point { private: int x,y; public: Point(int a=0,
给定 T ( n ) =
#include<iostream> #include<bits/stdc++.h> using namespace std; class counter { private: int i; public: counter(){}
Floyd:只有时间复杂度是三次方较高 dijkstra:不能处理有负边权。 spfa:不能处理有负权回路。
#include<iostream> #include<bits/stdc++.h> using namespace std; class IntArray { private: int *a; int sz; public:
description: 给 定 一 个
#include<iostream> #include<bits/stdc++.h> using namespace std; class A { public: A(){cout<<"create A"<<
description: 给 定 一 个
#include<iostream> #include<bits/stdc++.h> using namespace std; class shape { public: shape(){}; virtual ~shape(){}
note: 10.11: if(tr[x].mark&&tr[x].l<tr[x].r)不要写成 ≤ \leq
#include<bits/stdc++.h> using namespace std; class S { private: int *a; int n; int MS; public: void INit
description: 给 定 可 能
#include<bits/stdc++.h> using namespace std; class point { private: int a; int b; public: point(int x=0,int y=0)
来自以上链接中“木头释然”的回答
#include<bits/stdc++.h> using namespace std; class employee { private: char name[10]; char address[20]; char city[10];
题目系个人错题整理,处于无序状态,可ctrl+F搜索需要的题目,有疑问请在评论区提出,如果本文对您有帮助,请转发向朋友推荐~ T(n)表示某个算法输入规模为 n 时的运算次数。如果 T(1)为常数,且有递归式 T(n) = 2*T(n / 2) + 2n,那么 T(n) = ( )。
#include<bits/stdc++.h> using namespace std; class Student { private: int no; char name[10]; int deg; static i
int f(int x) { if (x <= 0) { return 0; } if (x == 1 || x == 2) { return 1;
#include <iostream> #include<bits/stdc++.h> #include<cstdlib> using namespace std; struct Student { char name[20]; int numbe
#include <iostream> #include<bits/stdc++.h> using namespace std; //定义一个void函数,有三个参数,分别是s1,s2,ch,要在s1里面找到ch,插入s2; void insert(char s1[],cha
在讨论算法的时候,常常会说到这个问题的求解是个P类问题,或者是NP难问题等等,于是我特地搜了这方面的资料,自己总结了下,估计研究算法的大家应该都知道,要是我总结的哪里不对,欢迎一起探讨~ 在讲P类问题之前先介绍两个个概念:多项式,时间复杂度。(知道这两概念的可以自动跳过这部分) 1、多项式:ax
#include <iostream> #include<bits/stdc++.h> using namespace std; int main() { //定义一个字符串,两个字符指针,然后输入字符串,给指针赋初值 char str[128], *p1, *p2
版权声明:本文为CSDN博主「漂流的云」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_37873310/article/details/80461767 汉诺塔:汉诺塔(Tower of
#include<bits/stdc++.h> using namespace std; int max(int a,int b) { return a>b?a:b; } int min(int a,int b) { return a<b?a:b; } int
description: solution: code: #include<cstdio> #include<algorithm> using namespace std; int a[100005],b[100005],c[100005]; int main
<mtext> 反馈 </mtext> \bold{\text{反馈}} 反馈 <mst
#include<bits/stdc++.h> using namespace std; int main() { int i,j,t; int p[100][100]; for(i=0;i<3;i++) { for(j=0;j<
description: 贝西有权选择让哪些奶牛参加展览。由于负的智商或情商会造成负面效果,所以贝西不希望出展奶牛的智商之和小于零,或情商之和小于零。满足这两个条件下,她希望出展奶牛的智商与情商之和越大越好,请帮助贝西求出这个最大值。 solution: 这道题可以想到用背包来做。 因为两个
#include<iostream> #include<string> #include<bits/stdc++.h> using namespace std; int main() { int a[1000]; int *p; p=a;
description: 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到了河的对岸。于是琪露诺决定到河岸去追青蛙。 小河可以看作一列格子依次编号为0到N,琪露诺只能从编号小的格子移动到编
#include<iostream> #include<string> #include<bits/stdc++.h> using namespace std; int main() { int *p= new int;//动态创建一个变量 cin
description: 小 G G G是 G
#include<iostream> #include<string> #include<bits/stdc++.h> using namespace std; int main() { cout<<"使用字符数组:"<
description: JOI君有N个装在手机上的挂饰,编号为1…N。 JOI君可以将其中的一些装在手机上。 JOI君的挂饰有一些与众不同——其中的一些挂饰附有可以挂其他挂件的挂钩。每个挂件要么直接挂在手机上,要么挂在其他挂件的挂钩上。直接挂在手机上的挂件最多有1个。 此外,每个挂件有一个安
#include<iostream> #include<string> using namespace std; int main() { int array[10]={3,7,4,1,2,6,5,8,9,10}; for(int i=0;i<10;i++)
description: N个政党要组成一个联合内阁,每个党都有自己的席位数. 现在希望你找出一种方案,你选中的党的席位数要大于总数的一半,并且联合内阁的席位数越多越好. 对于一个联合内阁,如果某个政党退出后,其它党的席位仍大于总数的一半,则这个政党被称为是多余的,这是不允许的. solut
#include<iostream> #include<string> using namespace std; int fun(char s1[],char s2[]) { int i=0; while(s1[i]&&s2[i]) {
description: solution: g [ i ]
#include<iostream> #include<math.h> #include<string.h> #include<stdio.h> using namespace std; char link(char s1[],char s2[]) {
description: 给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。 a ≤
#include<iostream> #include<math.h> #include<string.h> #include<stdio.h> using namespace std; int fun(int a,int b) { int m
description: windy定义了一种windy数。不含前导零且相邻两个数字之差至少为2的正整数被称为windy数。 windy想知道, 在A和B之间,包括A和B,总共有多少个windy数? 1
下面程序定义了一个函数模版对整型数组,单精度数组,双精度数组进行升序排序; 首先我们要明确什么是选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻
description: 有 n n n个随机变量
#include<iostream> #include<math.h> #include<string.h> #include<stdio.h> #include <fstream> using namespace std; templat
description: solution: 观察到答案并不会很大,于是我们可以枚举答案(这里不满足单调性,不能二分) 对于任意的i,j,原式可变形 为 ( P
#include<iostream> #include<math.h> #include<string.h> #include<stdio.h> #include <fstream> using namespace std; int sor
description: 一开始有两个数A和B,进行K轮游戏,每一轮可能有两种情况: 若 A ≤ B
#include<iostream> #include<math.h> #include<string.h> #include<stdio.h> #include <fstream> using namespace std; int sor
description: Aron给他的朋友们买礼物后在礼物店排队,它的前面有n个人,但是它发现有些人实在等待他的朋友而并非在排队买单,并且我们可以认为站在一个人后面的朋友都穿着匹配颜色的衬衫,而两个相邻的群体、相邻的个人或相邻的个人和一个集体将永远不会穿着相同颜色的衬衫。 编写一个程序,给定排
约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。 描述:约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1 开始报数。就这样,直到圈内只剩下一只猴子
description: 有M(M为偶数)头奶牛,每头奶牛有一个产奶量,将这些奶牛两两配对,每对奶牛的产奶的时间为两头奶牛产奶量的总和。现在这M/2对奶牛同时产奶,问所需的最短时间是多少 M保证为偶数 solution: 贪心。 将产奶量最少的和最多的匹配,最后取最大的时间即可 #incl
//首先要明白字符串的排序是根据ASCII大小排序,而不是长短,这个在测试数据的时候很重要 //然后分析题意要输入五个学生的姓名,首先就是用gets,puts输入输出,详情看下: #include<iostream> #include<stdio.h> #include<
description: 给定n个点,求出两点之间最短距离 solution: 观察数据范围,发现 n ≤ 100
#include<iostream> #include<string.h> using namespace std; int main() { int n; cin>>n; int a[20]={0},b[20]={0};//初始化两
description: 给出一个长度为 n n n 的整数序列,
Description: Solution: i d e a
欢迎留言!!! 另附本人信息栏: \(cnblogs\): ShineEternal \(洛谷\):ShineEternal \(CSDN\) \(blog\): ShineEternal \(github\) : ShineEternal-vercont 欢迎来加友链!
description: solution: i d e a
Description 有一堵长度为n的墙需要刷漆,你有一把长度为k的刷子。墙和刷子都被均匀划分成单位长度的小格,刷子的每一格中都沾有某种颜色(纯色)的漆。你需要用这把刷子在墙上每一个可能的位置(只要刷子不超出墙,且对准格子;共有n-k+1个位置)都刷一遍。如果墙上的某一格被不同颜色的漆刷过,那么它
Description 给定一个长度为n的数列{a1,a2…an},每次可以选择一个区间[l,r],使这个区间内的数都加一或者都减一。 问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列有多少种。 Input 第一行一个正整数n 接下来n行,每行一个整数,
Description 斐波那契数列的定义为:k=0或1时,F[k]=k;k>1时,F[k]=F[k-1]+F[k-2]。数列的开头几项为0,1,1,2,3,5,8,13,21,34,55,…你的任务是判断给定的数字能否被表示成两个斐波那契数的乘积。 Input 第一行包含一个整数t(1&l
个人感觉,unique是STL中很实用的函数之一,需要#include,下面来简单介绍一下它的作用。 unique的作用是“去掉”容器中相邻元素的重复元素,这里去掉要加一个引号,为什么呢,是因为它实质上是一个伪去除,它会把重复的元素添加到容器末尾,而返回值是去重之后的尾地址(是地址!!),举个例
#include<cstdio> #include<cstring> #include<string> #include<iostream> using namespace std; string s[1005]; int fake[1005]; st
dp即可 \(f[i][j]\)表示i到j的加分 相当于区间dp了 #include<cstdio> using namespace std; int v[50]; int f[55][55]; int root[55][55]; void print(int l,int r
个人感觉,unique是STL中很实用的函数之一,需要#include <iostream> ,下面来简单介绍一下它的作用。 </iostream> unique的作用是“去掉”容器中相邻元素的重复元素,这里去掉要加一个引号,为什么呢,是因为它实质上是一个伪去除,它
#include<cstdio> #include<cstring> #include<string> #include<iostream> using namespace std; string s[1005]; int fake[1005]; st
扫一扫,把题目装进口袋
扫描二维码,进入QQ群
扫描二维码,关注牛客网公众号