- 博客(46)
- 收藏
- 关注
原创 操作系统 - 进程和线程-同步方式、通信方式
1.进程同步 进程同步机制的主要任务是对多个相关进程在执行次续上进行协调,使并发执行的诸进程之间能按照一定的规则(或时序)共享系统资源,并能很好地相互合作,从而使程序的执行具有可再现性。 同步机制应遵循的规则:空闲让进、忙则等待、有限等待、让权等待。 进程同步的方式: ①硬件同步机制: (1)中断屏蔽方法 在进入锁测试之前关闭中断,直到完成锁测试并上锁之后才能打开中断。 优点:简单、高效 缺点:滥用关中断权力可能导致严重后果;关中断时间过长,会影响系统效率,限制了处理器交叉
2020-11-25 13:54:44 664
原创 操作系统-进程和线程-定义、引入目的、特征、区别与比较
1.进程的定义: 进程是进程实体的运行过程,是对运行时程序的封装,是系统进行资源分配和调度的一个独立单位。 2.引入进程的目的 / 为什么要有进程: 为了使进程实体能和其它进程实体并发执行,以提高资源利用率和系统吞吐量。 3.线程的定义: 线程是进程的子任务,是CPU调度和分派的基本单位。 4.引入线程的目的 / 为什么要有线程: 为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。 5.线程与进程的比较 / 线程与进程的区别①
2020-11-24 21:27:20 2342
原创 dp-2019-2020 ICPC Southeastern European Regional Programming Contest (SEERC 2019)-B. Level Up
题目链接题意:有n件事,经验到a1时升第一级,经验到a2时升第二级每个经验有x1,t1,x2,t2四个值x1,t1分别表示升第一级前做这件事可得经验和所需时间x2,t2分别表示升第一级后做这件事可得经验和所需时间求升第二级时所需的最小时间1≤n,a1,b1≤5001≤x1,x2≤5001≤t1,t2≤1e9思路:dp[j][k]表示升第一级前经验到j,升第一级后经验到k所需时间对于第i件事:升级前做这件事 dp[j+x1][k]=min(dp[j+x1][k],dp1[j][k]+
2020-07-09 10:26:06 537 1
原创 三分-Codeforces-1355E-Restorer Distance
题目链接题意:给n个数,有三种操作:1.任选一个数+1 花费为a2.任选一个数-1 花费为b3.任选两个数,一个-1,一个+1 花费为c问至少花费多少能将这n个数变成一样大的 每个数都要大于等于0数据范围:1≤n≤1e5, 0≤a,b,c≤1e40≤a[i]≤1e9思路:首先需要想到最终变成的数肯定在0~1e9之间然后 在某个数时花费存在最小值,其他的数离这个数越远,花费就越大然后就变成了一个凹函数 找极小值 用三分法对于某个数y 判断所有
2020-05-21 23:24:30 217
原创 想法-Codeforces-1355C-Count Triangles
题目链接题意:给四个正整数abcd,a≤x≤b≤y≤c≤z≤d问x y z有多少种选择方式可以组成一个三角形思路:x+y可能的值:minn=a+b,maxx=b+c然后枚举x+y的值计算x+y取该值时,z可取的数目,x和y可组合成该值的对数ans += z可取的数目*x和y可组合成该值的对数求x和y可组合成该值的对数的方法:maxxx = min(i - b, b);minnx = max(i - c, a);maxxy = min(i - a, c);minny = max(i
2020-05-20 20:47:46 232
原创 dp-Codeforces-1353F-Decreasing Heights
题目链接题意:一个n*m的矩阵,每个格子有一个高度。要从(1,1)走到(n,m)每次只能往上下左右走,且只能走到比当前格子高度大1的格子刚开始可以执行操作:将任意一个格子高度-1 格子高度可以小于等于0问至少执行多少次操作可以从(1,1)走到(n,m)思路:枚举(1,1)处可能的高度:aij-j-i+2然后dp代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;ll a[105][105
2020-05-20 20:14:16 162
原创 dp-牛客算法周周练7-C Rabbit的工作(1)
题目链接题目描述Rabbit大学毕业后找到了一份实习工作,如果实习通过她就转正了。实习期共有N天,其中有几天公司集体放假,Rabbit不用上班,剩下时间她可以选择工作或者休息。Rabbit工作总是越来越累,可是每当她休息时,她就重新充满了能量。简而言之,Rabbit第一天工作时这一天会消耗体力1,连续第二天工作时这一天会消耗体力2,连续第三天工作时这一天会消耗体力3,以此类推…每当她休息后,工作的第一天又会消耗体力1。为了让boss满意,Rabbit想工作尽量多的天数,但是懒惰的Rabbit又想让自
2020-05-20 17:25:09 199
原创 想法-Codeforces-1313C2-Skyscrapers (hard version)
题目链接题意:n座楼,每个楼有一个最高高度a[i],要求每座楼左右两侧不能同时有比他高的楼,输出所有楼的高度之和最大时,每座楼的高度思路:依次判断每座楼为最高的楼时,所有楼的最大高度之和,记录最大值最高楼的位置,然后依次得出每座楼的高度对于每座楼,需要找到它左边最大高度之和及右边最大高度之和a[i]为最高楼时,如果a[i]>=a[i-1],那么l[i]=l[i-1]+a[i]如...
2020-03-12 09:34:39 337 1
原创 贪心 构造-Codeforces-1305E-Kuroni and the Score Distribution
题目链接题意:给出两个整数n,m(1≤n≤5000,1≤m≤10^9)找到一个长度为n的递增序列,满足ax+ay=ak恰好有m对思路:首先前面的数从1开始,每次加1往后填那么每个数的贡献(k=i时的对数)分别是0 0 1 2 2 3 3…即(i-1)/2当发现某一位数如果ai=i时,对数超过了m那么判断当前还差多少对,让ai的贡献只满足最后几对即可假设当前还差x对,那么ai应该等...
2020-03-12 09:29:54 157
原创 数学-Codeforces-1316C-Primitive Primes
题目链接题意:f(x)=a0+a1 x+a2 x^2+…+an x ^ (n-1)g(x)=b0+b1 x+b2 x^2+…+bn x ^ (n-1)h(x)=f(x)g(x)=c0+c1 x+c2 x^2+…+cn x ^ (n-1)给出a0,a1,…,an b0,b1,…,bn 和一个质数p任意找到一个cx%p!=0(保证存在)思路:c0=a0+b0c1=a0b1...
2020-03-12 09:22:02 248
原创 数学-Codeforces-1305C- Kuroni and Impossible Calculation
题目链接容斥原理:题意:给出a1,a2,a3,…,an计算|a1-a2||a1-a3|…|a1-an||a2-a3||a2-a4|…*|an-1-an|%m的结果思路:因为是对m取余后的结果ax%m的结果一定在0~m之间,有m+1个可能所以当n大于m的时候 一定会存在两个a%m结果相同所以一定会存在|ax-ay|%m=0因此n大于m的时候结果为0代码:#include <...
2020-03-12 09:03:17 146
原创 数学-素数法求因子个数
1≤n≤10^12★找出1~sqrt(n)中所有素数ll k=sqrt(n);for (i = 2; i <= k; i++){ if (flag[i] == 0) { cnt++; prime[cnt] = i; for (j = 2;; j++) { if (i * j >...
2020-03-12 08:55:01 405
原创 贪心 字典树-Codeforces-1285D-Dr. Evil Underscores
题目链接题意:给定n个数,任意找一个数x和这n个数异或求 异或运算以后这n个数中最大的数 最小是多少思路:一开始一直在想怎么找x了…结果看了别人的博客发现这种思路是走不通的…应该直接去求最后的结果把这n个数的二进制建立一棵01字典树存储起来,如果一个节点同时存在1子节点和0子节点,那么异或后这一位应该是1,否则应该是0...
2020-03-02 17:21:53 136
原创 贪心 dp-Codeforces-1286A-Garland
题目链接题意:有n个数字分别问1~n,将这n个数字排成一个序列,如果序列中数字为0,代表该位置的数字未知,否则该位置的数字确定。如果相邻的数字奇偶性相同的话,那么算为一段,求该序列可能的最小段数。思路:以下给出(贪心)和dp两种做法…贪心还是别看了这道题题目中标了dp和greedy,然后我就毫不犹豫的往贪心上想…然后得出了贪心写法(我都不知道这是什么鬼思路,我瞎写了两百行代码错了好几次...
2020-01-09 23:18:44 507
原创 数学 想法-Codeforces-1244E Minimizing Difference
题目链接代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 100005, maxm = (1 << 20) + 5;#define INF 0x3f3f3f3fconst long long mod = 1000000007;/******...
2019-10-21 19:24:47 128
原创 数学-Codeforces-1244C-The Football Season
题目链接代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 100005, maxm = (1 << 20) + 5;#define INF 0x3f3f3f3fll gcd(ll c, ll d){ ll h; ll k =...
2019-10-15 19:49:48 184
原创 想法-Codeforces-1238C-Standard Free2play
题目链接题意太难懂了…之后再补思路吧,先放代码代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 200006, maxm = (1 << 20) + 5;int a[maxn];int main(){ int t; sca...
2019-10-15 01:37:12 310
原创 想法-Codeforces-1238D-AB-string
题目链接之后再补思路,先放代码代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 300005;char s[maxn];int main(){ ll n, i; scanf("%lld", &n); scanf("%s...
2019-10-15 01:33:19 256
原创 状压 dp-Codeforces-1238E-Keyboard Purchase
题目链接之后再补思路,先放代码代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 100005, maxm = (1 << 20) + 5;char s[maxn];int dp[maxm], cnt[21][21], dis[21][21]...
2019-10-15 01:26:48 225
原创 状压 dp-Codeforces-1234F-Yet Another Substring Reverse
题目链接之后再补思路,先放代码吧代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1000006, maxm = (1 << 20) + 5;char s[maxn];int dp[maxm], vis[22];int main(){...
2019-10-15 01:22:39 227
原创 想法 vector-Codeforces-1234E-Special Permutations
题目链接之后再补,先放代码代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 200050;ll a[maxn], pos[maxn]; //pos[i] 表示数字i在集合中的位置vector<int> v[maxn]; //v[i][j...
2019-10-15 01:14:18 174
原创 vector set 二分-Codeforces-1234D-Distinct Characters Queries
题目链接之后再补,先放代码代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 100005, maxm = 0;char s[maxn];vector<set<int> > v(26); //26个vector数组//每个vec...
2019-10-15 01:08:27 130
原创 map-Codeforces-1234B2-Social Network (hard version)
题目链接题意:依次收到n条短信,每条短信来自一个id,有重复id,手机最多能存k个人的短信。如果手机id达到k个以后,新来的id短信如果手机里没有,那么它会把最前面那个id的短信给替换掉。如果新收到的短信id手机里已有该id,那么手机中的id顺序不会变。如果手机中的id顺序更新,那么新来的短信id总是在最前面。问最终手机中短信的id顺序(从前到后)。思路:这道题与B1的区别就是,数据范围...
2019-10-15 00:29:27 194
原创 dp-HDU 6549 String
题目链接题意:有一个长度为 n 的字符串,每次可以将一个长度不大于 l 的子串修改成同一种字母,问至少修改多少次可以使字符串最多含有 k 段。连续的只含同 一种字母的子串被称为一段。比如说, aaabbccaaa 共含有 4 段思路:dpdp[i][j][k]表示在该字符串中的第i个字母时,将其修改成以j为结尾的,含有k段的最小次数。dp[i][27][k]表示 在该字符串中的第i个...
2019-09-29 18:13:57 457 1
原创 想法-Codeforces-1230C-Anadi and Domino
题目链接题意:给定一个n,一个m,表示一个图中有n个点,m条边(这m条边保证没有自己连自己和重复的情况)。有21种多米诺骨牌,每个多米诺骨牌有两部分,每个部分有一个数字。(1,1)(1,2)(1,3)(1,4)(1,5)(1,6)(2,2)(2,3)(2,4)(2,5)(2,6)(3,3)(3,4)(3,5)(3,6)(4,4)(4,5)(4,6)(5,5)(5,6)(6,6)...
2019-09-24 20:17:37 181
原创 贪心-牛客 道路铺设
题目链接题意:n个坑,每个坑有一个深度,每次能选其中连续的一段,将这一段的深度减少1,问至少多少次可以把这些坑全部填成0(不能凸起来,也就是到0以后就不能再填了)思路:这道题是在牛客上做优先队列时看到的,之前学长讲过一道类似的题,可以用贪心写,比优先队列简单,就没有再用优先队列。首先将题转化成 :把最深的坑当成0,记录每个坑凸起的高度,现在问题就转化成了将这n个高度都变成原最大深度 所需...
2019-09-09 13:48:11 335
原创 模拟 想法-HDU 6551 Clock
题目链接题意:给定此时的时间再给定n个钟表上的其他时间问从此刻的时间开始,将这n个钟表上所有时间都走完一遍时,秒针转过的最小角度思路:只存在四种情况:①只顺时针走②只逆时针走③先顺时针走再逆时针走④先逆时针走再顺时针走模拟即可,刚开始模拟写的超级复杂。。。一个劲地WA…后来改了写法,简单了很多而且特别容易想明白记录此刻的时间到每一个给定时间的顺时针走的角度从大到小排序相...
2019-09-09 01:09:34 232
原创 优先队列-牛客 [HNOI2003]操作系统
题目链接题意:有n个命令,给定每个命令的 序号,最早开始时间(到达时间),需要持续的时间,优先级某一时刻,当有多个命令都可以被解决时,优先选择优先级大的,如果优先级一样,优先选择最早开始时间早的执行输出 n个命令被完成的时间(按被完成的从早到晚排序)思路:每到一个命令的开始时间,就把这个命令扔到优先队列中,并判断这个时间到上一个命令到达这一段时间中执行命令的情况优先队列先按照优先级从...
2019-09-09 00:39:33 233
原创 优先队列-HDU 6546 Function
题目链接题意:有n个二次函数,每个函数中x有一个正整数值,这n个x的值和为m,求这n个函数计算结果的和的最小值。思路:因为这n个x都是正整数,所以让每个函数中x的初始值都为1,然后记录每个函数的x增加1时,这个函数值增加的值,把这些值丢到一个优先队列中,每次不断更新序列,直到进行m-n次 也就是直到所有x的和为m为止。代码:#include <bits/stdc++.h>...
2019-09-09 00:30:24 149
原创 并查集 二分-Codeforces-1213G Path Queries
题目链接题意:有n个点,编号1-n保证这n个点来自于一个树,给出n-1个点之间的连接关系问有多少种对(u,v) u<v满足u v之间的路上 没有长度超过qi的边样例+题目解释:例如第一组样例构成的树如图所示询问分别为:5 2 3 4 1第一次询问:(1,2)(1,3)(1,4)(1,5)(1,6)(1,7)(2,3)(2,4)(2,5)(2,6)(2,7)(3,4)...
2019-09-03 00:24:31 146
原创 想法-Codeforces-1213F Two Small Strings
题目链接题意:s和t都是由字母a b c中的一种或两种字符 组成的长度为2的字符串找到一个字符串 其中a b c三个字母各出现n次,并且s和t不是其连续子序列(the strings “ab”, “ac” and “cc” are substrings of the string “abacc”, but the strings “bc”, “aa” and “cb” are not su...
2019-09-01 23:59:16 225
原创 想法-Codeforces-1208B Uniqueness
http://codeforces.com/problemset/problem/1208/B题意:任意删除一段连续的序列,使剩下的序列中每个元素只出现一次,求最小删除长度思路:暴力跑一遍,记录中间过程的最小长度即可依次列举保留前面i个元素,然后从序列最后找能保留的最大元素的数目用总长度-前面保留的元素数-后面保留的元素数 即为这种情况下需要删除的元素数记录所有情况下的最小值因为a...
2019-08-30 15:38:50 260
原创 贪心-Codeforces-1197D Yet Another Subarray Problem
D. Yet Another Subarray Problemtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given an array a1,a2,…,an and two integers m and k.Yo...
2019-08-01 15:37:18 188
原创 贪心-Codeforces-1197C Array Splitting
C. Array Splittingtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a sorted array a1,a2,…,an (for each index i>1 condition ai...
2019-07-31 11:50:11 210
原创 二分-Codeforces-1169C Increasing by Modulo
补一下昨天晚上CF困到不行 卡的一道题C. Increasing by Modulotime limit per test2.5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputToad Zitz has an array of integers, each integer...
2019-05-27 23:55:12 351
原创 想法-HDU-6492 分宿舍——2050C题
补一道一个月前欠下的题…本来因为2050做得太菜然后逃避不想看了…但是听说今年女生赛还是wls他们出题…就过来补了吧hhh(从今天开始要好好补题啦~)题目:“那天TA说TA要来,于是我就来啦。那天我说我要来,于是你就来啦。TA看到了什么?你又看到了什么?我看到你们在一起,我是真的很happy:)太阳在哪里啊?就在早上七八点。太阳在哪里啊?就在云的栖息地!”——2050主题...
2019-05-26 15:34:10 266
原创 想法-Codeforces-Round 64 (Rated for Div. 2) Problem A Codeforces Inscribed Figures
A. Inscribed Figurestime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe math faculty of Berland State University has suffered the sudden drop ...
2019-05-02 10:44:14 151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人