- 博客(93)
- 收藏
- 关注
原创 【LeetCode】2.两数相加
这道题目直接求解就行,最后记得进位。难点为题目两个数由链表存储,相较于数组操作更加复杂一点。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListN
2022-03-03 21:55:15
385
原创 【LeetCode】1.两数之和
这道题目直接暴力求解就行,也可以用map查找相应的target-nums[i],这样的话复杂度会更低一点。class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { map<int,int>mp; int length=nums.size(); for(int i=0;i<length;i++){
2022-03-03 21:49:38
223
原创 PAT (Basic Level) Practice (中文)
1001 害死人不偿命的(3n+1)猜想 (15 分)#include&amp;amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;amp;gt;using namespace std;#define LL long long intint main(){ int n,res=0; scanf(&amp;amp;amp;quot;%d&amp;amp;amp;quot;,&a
2018-11-18 23:21:09
290
原创 欧拉函数打表
const int maxn = 1e7 + 10000;LL phi[maxn];LL p[maxn];LL tot;void Euler(){ phi[1] = 1; for (LL i = 2; i &lt; maxn; i++) { if (!phi[i]) { phi[i] = i - 1; ...
2018-08-23 00:12:58
295
原创 线性素数筛
const int maxn = 1e7 + 10000;//+10000是为了多筛一个素数bool e[maxn];int p[maxn];int tot;void prime()//O(n)筛素数,e[x]==0表示x为素数{ e[0] = e[1] = 1;tot = 0; for (int i = 2;i<maxn;i++) { if...
2018-08-22 23:27:18
331
原创 2018 Multi-University Training Contest 9 1004 Rikka with Stone-Paper-Scissors
题意是A、B两个人手中各有a张剪刀,b张石头,c张布。B每赢一局得一分,输一局扣一分,平局不得分,求最后得分期望。手中石头的牌遇到剪刀得分,遇到布失分,遇到石头可以忽略不计,其他两种牌也是这样。 则结果为(a * (cc - bb) + b * (aa - cc) + c * (bb - aa))/(a+b+c)#include <cstdio>#include <cst...
2018-08-21 14:12:04
174
原创 Lucas
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define LL long long intLL Pow(LL a, LL b, LL p){ LL res = 1; while...
2018-08-21 13:37:30
280
原创 牛客网暑期ACM多校训练营(第九场)E Music Game
概率题,我们先预处理出来每个区间出现的概率,然后记得计算的时候当前区间的前后要乘以失败的概率再乘以区间所能产生的价值(x^m)。最后求一求就结束了。#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>using namespace std;#de...
2018-08-18 18:55:29
291
原创 ACM交互题小结
今天才了解到还有交互题这种问题,很神奇,就不是平常写的那种传统题目。这种题目一般都是让你去输出东西询问,系统输入“YES”或“NO”作为回答,然后让你根据这些“YES”和“NO”得到最终答案。前置知识: 在一些题目里面(我做的题目也没几道,可能片面了)会经常用到【fflush(stdout)】这个操作。这个操作的用处百度了一下,回答很多,大概的作用就是强制刷新输出缓冲区,将里面的内容输出出来...
2018-08-17 23:02:42
4676
3
原创 POJ 3320 Jessica's Reading Problem (尺取法)
//#include<bits/stdc++.h>#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<map>#include<set>using namespace std;int n,a[1
2018-08-14 16:45:14
161
原创 2018 Multi-University Training Contest 7 1011 Swordsman
题意:给你一个原来的人物属性,你要全部的属性都大于怪物的属性才能打败怪物,打败怪物之后能够获得属性的提升。最后输出打败了几个怪物,人物最后的属性是多少。(队友读的题目,差不多就这个意思) 思路:直接结构体输入,然后按照k个属性分为k各部分分别排序,每次去扫这些已经排序过的区间,如果大于就在相应怪物id记录一下。当一个怪物id记录了k次之后就代表该怪物所有属性都小于人物属性,就可以将奖励属性加到人...
2018-08-13 19:49:40
175
原创 Educational Codeforces Round 4 D. The Union of k-Segments(扫描线)
题意是给你很多个区间,让你找覆盖恰好为k层的区间。 用扫描线直接做就行了。#include<iostream>#include<algorithm>#include<cstring>#include<vector>#include<cstdio>using namespace std;#define LL long lo...
2018-08-12 14:39:12
182
原创 牛客网暑期ACM多校训练营(第七场) C-Bit Compression
dfs然后记忆化一下就行了。#include<bits/stdc++.h>using namespace std;int n;char s[300300];int val[20][300300];int num[20][300300];bool vis[20][300300];int dfs(int x){ if(x==0) return num[x][...
2018-08-10 15:42:14
144
原创 牛客网暑期ACM多校训练营(第七场)J-Sudoku Subrectangles
先预处理得出以每个点向右向下构造矩阵的最大长度,然后再进行处理。这样就能以52*nm的复杂度解决问题。#include&lt;bits/stdc++.h&gt;using namespace std;#define LL long long int#define lson rt&lt;&lt;1,l,m#define rson rt&lt;&lt;1|1,m+1,rint n,m...
2018-08-10 12:40:27
154
原创 牛客网暑期ACM多校训练营(第七场)A- Minimum Cost Perfect Matching
把前几个的二进制写出来,然后自己画一画就能够得出结果。从大到小当前数字与该数字按位取反相连,没有能够相连的就和0相连,直接写就行了。#include<bits/stdc++.h>using namespace std;#define LL long long int#define lson rt<<1,l,m#define rson rt<<1|...
2018-08-10 09:39:42
144
原创 2018 Multi-University Training Contest 5 1007:Glad You Came
题意:给你一个生成数据的函数和一个包含n个初始化为0的数的序列。一共m次操作,每次通过函数生成l,r,v,将l~r之间小于v的数都变为v。最后求所有i*a[i]的异或和。 思路:直接暴力线段树写一写就能过,线段树维护一下区间最小值然后不断更新最后求答案就行。标准题解是用了一个ST表的思想,暂时还写不来。#include&lt;bits/stdc++.h&gt;using namespa...
2018-08-07 10:37:09
165
原创 O(n)打印逆元表
//O(n)打印逆元表void init(){ inv[1] = inv[0] = 1; for (LL i = 2; i < maxn; i++) inv[i] = (mod - mod / i)*inv[mod%i] % mod;}
2018-08-05 15:20:11
515
原创 牛客网暑期ACM多校训练营(第六场)J-Heritage of skywalkert
直接按照题目给的代码抄一下然后保留最大的20位相互求一求最大LCM就行了。再注意一下细节,没什么难度其实。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define ULL unsigned lon...
2018-08-05 11:11:45
188
原创 牛客网暑期ACM多校训练营(第五场)F-take
题目意思就是从前往后有n个箱子,每个箱子中有p[i]的概率会出现价值为d[i]的钻石,当箱子内的钻石价值大于当前手上的钻石的价值的时候,将手上钻石跟箱子内的钻石交换,问最后交换次数的期望。 思路:结果要求的是交换次数的期望,我们可以将每个箱子交换的期望求出来相加即可。那么显而易见的是,当前箱子交换的概率即为该箱子之前的所有d[i]大于当前箱子的箱子内的钻石都不出现的概率乘以当前箱子出现钻石的概率...
2018-08-05 00:20:48
307
原创 牛客网暑期ACM多校训练营(第五场)A-gpa(01分数规划)
01分数规划模板题#include<bits/stdc++.h>using namespace std;#define LL long long int#define eps 1e-8int n,k;int s[100100];int c[100100];bool check(double x){ double res[100100]; for(...
2018-08-04 11:03:45
218
原创 莫队算法(部分模板)
#include <bits/stdc++.h>using namespace std;#define LL long long intconst int maxn = 1e5;int n;int bk[maxn];struct mo{ LL l, r, id, res;}q[maxn];bool cmp(mo a, mo b){ return bk[a.l]...
2018-08-03 18:12:47
262
原创 2018 Multi-University Training Contest 3
1001:Problem A. Ascending Rating 用单调队列从后往前去做一下就能得到结果了,单调队列的队头就是区间最大值,单调队列的长度就是改变的值。#include&lt;bits/stdc++.h&gt;using namespace std;#define LL long long int#define lson rt&lt;&lt;1,l,m#define...
2018-07-31 10:37:42
272
原创 牛客练习赛23
A:托米的赌球 贪心,直接写一下就行了。#include<bits/stdc++.h>using namespace std;#define LL long long int#define lson rt<<1,l,m#define rson rt<<1|1,m+1,rint T;int a,b;int m[11]={100,50,20,...
2018-07-28 19:47:10
147
原创 KMP算法(模板)
//S是要被匹配的串,s是用来匹配的串//求出S串中有多少s//getnext()int cnt=0;for(int i=0;s[i];i++){ int k=next[i]; while(k&gt;=0&amp;&amp;s[i]!=s[k]) k=next[k]; next[i+1]=k+1;}for(int i=0,j=0;S[i]){ if(...
2018-07-28 10:48:11
187
原创 斯特林公式
斯特林公式是一条用来取n!的近似值的数学公式,也可用来求取n!的位数。//在x进制下的位数LL res = (LL)((log(2 * pi*n) / 2 + n*log(n) - n) / log(x));
2018-07-27 18:56:05
705
原创 rope
#include <ext/rope> //头文件using namespace __gnu_cxx; //调用命名空间int a[1000];rope<int> x;rope<int> x(a,a + n);rope<int> a(x);x->at(10);x[10];x->push_back(x) // 在末...
2018-07-27 18:19:53
610
原创 牛客网暑期ACM多校训练营(第三场)
A:PACM Team 简单的四维DP,记得DP过程中记录一下选择了那些团队。因为数据范围比较小(36),1&amp;lt;&amp;lt;36在long long 范围内,所以为了效率我们使用状态压缩记录路径(不然应该过不了。。)。 PS:题目貌似没要求按顺序输出,求出结果之后直接输出就行了,不用再倒一下。。#include&amp;lt;bits/stdc++.h&amp;gt;using namespace st...
2018-07-27 13:07:18
307
原创 牛客网暑期ACM多校训练营(第二场)
A:run 基础DP,直接做就行了。DP时候求出来到哪个距离有几种走法,然后求一下前缀和。输出答案的时候减一下就行了。#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<cstdio>#include<sta...
2018-07-27 10:51:48
147
原创 2018 Multi-University Training Contest 2
1004:Game 找几个数找一下规律就行了,就能得出来先手必胜。不过据说有证明。。#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;int main(){ int n; while(cin&amp;gt;&amp;gt;n) { cout&amp;lt;&amp;lt;&quot
2018-07-27 10:35:21
212
原创 HDU 1698 Just a Hook
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6315线段树区间更新模板题(还少了query)。。#include<bits/stdc++.h>using namespace std;#define LL long long int#define lson rt<<1,l,m#define rson rt<...
2018-07-26 10:56:04
112
原创 2018 Multi-University Training Contest 1
1001:Maximum Multiple 从n中拆出x,y,z,并要求x,y,z能被n整除且xyz最大。推一下就能够知道符合要求的时候就是能被三整除或者能被四整除时候,分为n/3,n/3,n/3或者n/4,n/4,n/2。#include&lt;bits/stdc++.h&gt;using namespace std;int main(){ long long n; ...
2018-07-24 13:42:52
234
原创 HDU 2089(数位DP)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2089数位DP基础(模版)题#include<iostream>#include<algorithm>#include<cstring>#include<string>#include<cstdio>#include<s...
2018-07-22 11:00:04
190
原创 NOIP 拦截导弹
题目链接:https://www.luogu.org/problemnew/show/P1020 题意很简洁,一共两问。 第一问是求单个拦截系统最多能拦截多少个,根据题意即最长非上升子序列。 第二问有多少导弹拦截系统才能拦截全部导弹,即有多少最长非上升子序列才能包括全部数。 稍加思考即可得出最长上升子序列的长度即为答案。 本题的转化思考和两个求序列长度写法要记一下(就我目前看到的题解貌似...
2018-07-18 23:56:54
463
原创 “浪潮杯”山东省第六届ACM大学生程序设计竞赛 H
题意是给你n个数,让你求两个数相乘是平方数的对数。 直接先打一个素数表,然后把输入的每个数都从中取掉含有的平方数。得到一个新的数,在这些数中相互比较,如果两个数相等,那么代表这两个数的乘积为平方数。#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>...
2018-05-15 23:09:46
238
原创 第七届福建省大学生程序设计竞赛
B:计算得分的期望#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;int main(){ int T; int n; int cmp=0; int a[10010]; ...
2018-05-12 14:47:15
885
原创 第六届福建省赛
A:题意是有n个手机和一个充电宝,问你最多能把几个手机充满电(100%)。直接排序嘛,然后一直减就行了。#include#includeusing namespace std;int main(){ int t; cin>>t; while(t--) { int a[111]; int n,m; cin>>n>>m; for(int i=0;i<n;i++)
2018-05-08 21:17:48
363
原创 Codeforces Round #479 (Div. 3)
题目链接:http://codeforces.com/contest/977A:题意是对这个数进行k次操作,如果这个数能被10整除,就除以10,不能的话就减1。#include#include#include#includeusing namespace std;#define LL long long intint main(){ int n, k; while (ci
2018-05-07 23:36:22
153
原创 “浪潮杯”山东省第七届ACM大学生程序设计竞赛
写题解之前先吐槽一下这次训练的OJ,好像是叫什么“V4T”的OJ,超级难用。隔壁组提交之后一直卡在submitting,最后发现是不能有多余的空格,就是vs里面自动生成的那种空格是不行的。是真的毒瘤,搞了半个小时才弄好,后面我们又卡在了c题的提交上,一气之下直接跑到山东师范大学oj交的题目。不过还好的是之后队友给OJ负责人的邮箱发了个邮件说明了一下问题,很快就得到了回复和修改。之前卡在submit
2018-05-04 21:13:33
592
原创 西安电子科技大学第16届程序设计竞赛网络同步赛
锟斤拷锟接o拷https://www.nowcoder.com/acm/contest/107/A锟斤拷源锟斤拷牛锟斤拷锟斤拷锟斤拷目锟斤拷锟斤拷 锟斤拷锟竭诧拷锟斤拷锟姐锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟轿拷锟斤拷芄锟斤拷晒锟斤拷锟斤拷校锟斤拷锟绞硷拷炭啾矴RE锟斤拷锟绞o拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟节刻苦,锟节憋拷锟斤拷英锟斤单锟绞碉拷同时锟斤拷锟斤拷锟斤
2018-04-21 22:59:09
275
原创 Codeforces Round #290 (Div. 2)A. Fox And Snake
A. Fox And Snaketime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputFox Ciel starts to learn programming. The
2018-04-20 11:45:11
262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人