Daily
1
开学了8
go on
展开
-
Anagram(全排列)
竟然还有人用递归,不会不会#include <iostream>#include <cstring>#include <algorithm>#include <vector>using namespace std;int cmp(char a,char b) { if(tolower(a)!=tolower(b)) return tolower(a)<tolower(b); else return原创 2021-08-04 12:51:47 · 120 阅读 · 0 评论 -
c++高精度模板
两个大整数相乘#include <iostream>#include <cstring>using namespace std;const int N = 50000;char a[N], b[N];int A[N], B[N], C[2*N];int main(){ cin >> a >> b; A[0] = strlen(a); B[0] = strlen(b); for(int i=原创 2021-07-30 22:42:10 · 333 阅读 · 0 评论 -
数组差分&&二维矩阵的前缀和与差分,在O(n)时间内完成查询
a[i]=b[1]+b[2]+...b[i−1]+b[i]a[i] = b[1] + b[2] + ...b[i-1]+b[i]a[i]=b[1]+b[2]+...b[i−1]+b[i]b[l]=b[l]+cb[l] = b[l] + cb[l]=b[l]+cb[r+1]=b[r+1]−cb[r+1] = b[r+1] - cb[r+1]=b[r+1]−c使得a数组两头的数不变,中间求前缀和时,就会自动加上c 值。#include <iostream>using namespac.原创 2021-07-22 11:31:02 · 79 阅读 · 0 评论 -
J. The Power of the Dark Side - 2
题意tournament 锦标赛agility 敏捷intelligence 智力strength 力量parameter 参数restriction 限制一个Jedi有三个参数,当两个Jedi打架的时候,拥有至少两个高于对方相应参数的Jedi获胜。可以使一只Jedi黑化,黑化后可以重置参数,但是参数不能为负数,且三个参数的总和不变。对于每一个Jedi,计算出它黑化后可以击败的数量。题解三个参数排序,前两个的值pre,三个值的和sum,对pre进行排序,对数组pre对sum进行二分搜原创 2021-07-08 22:09:22 · 112 阅读 · 0 评论 -
poj 1852 Ants
http://poj.org/problem?id=1852题目大意army 陆军,大军reside 居住一群蚂蚁走在长为1cm1cm1cm的水平杆上,每个的速度是1cm/s1cm/s1cm/s当走到尽头,掉下去。当两只碰到一起,那么两只往反方向走。知道它们的初始位置,不知道原始蚂蚁的移动方向。求蚁群全部掉下去的最早和最晚时间题解最小值:找到一个比较靠近中心的蚂蚁,让它往最近的终点掉落的时间最大值:找到一个蚂蚁,它距离对面的终点最远,让它掉落的时间先排序(数据是无序的)代码/原创 2021-07-07 11:26:50 · 91 阅读 · 0 评论 -
I. chino with mates
题目大意blind date event – 相亲nnn 名男性, mmm 名女性男性的个性值为aia_iai, 女性的个性值为bjb_jbj ,当ai∗bi在[L,R]a_i * b_i在 [L, R]ai∗bi在[L,R] 这个范围就算配对合格。求有多少对?题解lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字原创 2021-07-07 09:56:11 · 236 阅读 · 0 评论 -
cocktail with pony
题目大意在一维数轴上,狼的起始位置是x1x_1x1,马的起始位置的x2x_2x2 。每轮狼移动v1v_1v1步,小马移动v2v_2v2 步,每一步都可以向左或者向右移动。狼和马轮流先移动,第一轮狼先动,第二轮马先动。如果两个动物位置相同,那么马被抓住。移动不能超过数轴n的长度代码#include <iostream>using namespace std;int n,v1,v2,x1,x2;// 模拟int main(){ int t; cin >>原创 2021-07-06 16:51:44 · 298 阅读 · 1 评论 -
J. do NOT a=2b
https://codeforces.ml/group/vFwRVj9WjO/contest/335370/problem/J题目大意给定长度为n的数组中不能出现a=2ba=2ba=2b问最少删除多少个元素题解从111到10610^6106排列开,其中a=2ba=2ba=2bdp[i][0]dp[i][0]dp[i][0] 奇数dp[i][1]dp[i][1]dp[i][1] 偶数当 iii 为奇数时, 直接记录。为偶数时, 判断一下前面的数是否扣掉再加代码#include <原创 2021-07-06 11:22:08 · 437 阅读 · 1 评论 -
K. chino with c language(水题)
https://codeforces.ml/group/vFwRVj9WjO/contest/335370/problem/K题目大意memcpy不检查源地址和目标地址是否有重叠memmove考虑重叠的情况代码#include<bits/stdc++.h>using namespace std;const int maxn = 1e5+10;char s[maxn], t[maxn];void solve(){ int n,l,p1,p2; cin &g原创 2021-07-06 10:02:33 · 309 阅读 · 0 评论 -
求逆元模板-费马小定理&&拓展欧几里得&&线性递推
前两个定理求单个逆元可以,如果求多个,用线性递推。发现cin cout 实在是太慢了,还是老实使用scanf printf费马小定理:a(p−1)≡1(mod p)a^{(p-1) }≡ 1 (mod \ p)a(p−1)≡1(mod p) 两边同时除以a 得:a(p−2)≡inv(a)(mod p)a^{(p-2) }≡ inv(a) (mod \ p)a(p−2)≡inv(a)(mod p)inv(a)=a(p−2)(mod p)inv(原创 2021-07-01 16:08:18 · 99 阅读 · 0 评论 -
最近公共祖先LCA(离线Tarjan+在线倍增+MRQ)
基础理解全面原创 2021-06-30 15:26:42 · 72 阅读 · 0 评论 -
树状数组的变形(差分+数组数组)
暴力求解是不行的注意到差分后的一些性质1,6,8,5,10{1,6,8,5,10}1,6,8,5,10,对应差分数组1,5,2,−3,5{1,5,2,-3,5}1,5,2,−3,5区间[2,4] + 21,8,10,7,10{1,8,10,7,10}1,8,10,7,10,对应差分数组1,7,2,−3,3{1,7,2,-3,3}1,7,2,−3,3就是a[2]+2a[2]+2a[2]+2 ,a[5]−2a[5]-2a[5]−2#include <iostream>using na原创 2021-06-29 10:42:01 · 71 阅读 · 0 评论 -
树状数组模板(区间查询)
https://www.luogu.com.cn/problem/P3374区间查询#include <iostream>using namespace std;#define ios ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)int n,m;const int N = 5e5+10;int c[N];int lowbit(int x) {return x&-x;} // 计算父亲节点vo原创 2021-06-29 09:12:10 · 40 阅读 · 0 评论 -
Python基于numba加速
加速前:#-*-coding:utf-8-*-import timedef isPrime(i): for test in xrange(2,i): if i % test == 0: return False return Trueif __name__ == '__main__': t1 = time.clock() n_loops = 50000 n_primes = 0 for i in xrang转载 2021-05-12 15:29:09 · 75 阅读 · 0 评论 -
Codeforces Round #719 (Div. 3)(a,b,c)
题目https://codeforc.es/contest/1520这里写目录标题abcdef1f2ga一个字符串,出现在一个地方的字符,不能再第二个地方出现AAAAZAAAAAAAAAZAAAAAAAAAZAAAAA -------NOFFGZZZYFFGZZZYFFGZZZY ------------- YES#include<bits/stdc++.h>#define ll long long using namespace std;const int N = 1e4;原创 2021-05-08 20:17:28 · 89 阅读 · 0 评论 -
A. Nastia and Nearly Good Numbers(简单思维)
https://codeforc.es/contest/1521/problem/A#include<bits/stdc++.h>#define ll long longusing namespace std;ll a, b;void solve() { cin >> a >> b; if(b==1){ cout << "NO\n"; return; } cout <<原创 2021-05-08 09:39:06 · 309 阅读 · 0 评论 -
In-place Sorting(逆向思维,数组下标用vector代替)
https://ac.nowcoder.com/acm/contest/13926/H题目:给定n个数字,每个数字6和9能互换,输出不减序列,或者输出“impossible”思路:对于每个数字,先把6全换成9;换成6(6比较小,为了输出最小序列),如果换了还是不减序列,则换。否则保持9,如果保持9还是比之前的数小,输出“impossible”例如:4979666160换94979999190依次换6,能换则换4679699160注意:如果不想要数组的下标,则原创 2021-05-07 20:51:36 · 147 阅读 · 0 评论 -
Jam-packed(思维)
https://ac.nowcoder.com/acm/contest/13926/I有n个瓶子,每个箱子最多装k个瓶子,尽可能多装,问最少装多少个思路:tmp = n / kn / (tmp+1)除以tmp+1 ,肯定可以装完。#include<bits/stdc++.h>#define ll long longusing namespace std;int main(){ ll n, k; cin >> n >> k; if(n &l原创 2021-05-07 20:26:32 · 797 阅读 · 0 评论 -
Linux/macOS下写C语言
很久用一次,总是忘记找到目录vi test.c编译:gcc test.c -o test运行:./test原创 2021-05-07 10:48:56 · 75 阅读 · 0 评论 -
Figure Skating(map映射的用法,string 映射到int)
链接:https://ac.nowcoder.com/acm/contest/13926/E来源:牛客网Figure skating 花样滑冰gymnastics 体操execute 执行contestant 参赛者Olympics observers from the Bookmakers’ Association for the Prevention of Cheating are tasked with assessing the objectivity of the jury. Th原创 2021-05-06 17:38:09 · 165 阅读 · 0 评论 -
F - leeing Sunlight (二分答案)
代码:#include<bits/stdc++.h>#define ios ios::sync_with_stdio(false);cin.tie(0)const double N = 1e9;const double esp = 1e-4;using namespace std;double f[1000005][2];int n, m;double check(double k){ double sum = 0; for(int i = 1; i &l.原创 2021-05-04 16:05:12 · 229 阅读 · 0 评论 -
uvenile Galant(典型动态规划)
#include<bits/stdc++.h>#define ios ios::sync_with_stdio(false);cin.tie(0)#define rep(i,a,b) for(int i=a;i<=b;++i)#define ll long longusing namespace std;const int mod = 998244353;const int maxn = 1e6;ll f[maxn+10][3];int main(){ i.原创 2021-05-04 15:47:31 · 252 阅读 · 0 评论 -
lazing Rif(简单思维)
https://codeforces.com/group/vFwRVj9WjO/contest/326585/problem/B第一次,被回文绕晕了第二次如果串由一个字母组成,输出-1如果有两个(或两个以上)子串不一样,输出2#include<bits/stdc++.h>#define ios ios::sync_with_stdio(false);cin.tie(0)#define rep(i,a,b) for(int i=a;i<=b;++i)using namespa原创 2021-05-04 15:37:35 · 107 阅读 · 0 评论 -
clipsing Star (逆向思维)
逆向思维,两轮变一轮#include<bits/stdc++.h>#define ios ios::sync_with_stdio(false);cin.tie(0)#define rep(i,a,b) for(int i=a;i<=b;++i)#define fep(i,a,b) for(int i=b;i>=a;--i)using namespace std;const int N = 1e6+5;int n, a[N];int main(){ ios;.原创 2021-05-04 15:25:57 · 275 阅读 · 0 评论 -
离谱的A题(做离谱的尝试)A. League of Legends
https://codeforc.es/group/vFwRVj9WjO/contest/325796/problem/A#include <iostream>using namespace std;int main(){ long long ans1 = 0; long long ans2 = 0; for(int i = 1; i <= 5; i++){ long long tmp; cin >> tmp;原创 2021-04-30 16:32:38 · 260 阅读 · 1 评论 -
M. Game Theory(简单博弈论)
https://codeforc.es/group/vFwRVj9WjO/contest/325796/problem/M老师随机选择一个数,对于其他学生,抽一个来分析即可,随机抽一个来计算,总的概率为0代码及其简单,主要是思维#include <bits/stdc++.h>using namespace std;int main(){ int t; cin >> t; puts("0.0000"); return 0;}.原创 2021-04-30 16:30:16 · 437 阅读 · 1 评论 -
Cube(给出八个点,判断这八个点是否可以构成一个正方体)
https://codeforc.es/group/vFwRVj9WjO/contest/325796/problem/C思路:不能只判断一个点,一共八个点,每个点都判断一次,复杂度为888^888puts("abs")自动换行#include <bits/stdc++.h>using namespace std;int p[8][3];bool check(){ double dis[35]; for(int i=1;i<=8;i++){原创 2021-04-30 14:41:47 · 1721 阅读 · 1 评论 -
64位整数乘法(大整数乘法)
给定大整数a, b求a * b % pimport java.io.*;import java.math.*;import java.util.*; public class Main{ public static void main(String args[]) { Scanner cin = new Scanner(System.in); BigInteger a=cin.nextBigInteger(); BigInteger b=cin.nextBigI原创 2021-04-23 18:45:55 · 113 阅读 · 0 评论 -
java大整数类
传送门向比较于c++,java的大整数类,便捷!原创 2021-04-23 18:43:23 · 44 阅读 · 0 评论 -
程序员的好印象(最长不下降子序列)
https://ac.nowcoder.com/acm/problem/15759最长不下降子序列的模板,直接食用。下面重点理解核心代码:b[i] = 1; // 每次先把自己算进来,自己的个数,当然是1for(int j = 1; j < i; j++) if(a[j] <= a[i]) b[i]=max(b[i], b[j]+1); (1)j < i, 算过自己,就不要再算了,依次看看之前有几个比我小(2)b[i]=max(b[i], b[j]+原创 2021-04-23 12:01:03 · 71 阅读 · 0 评论 -
Codeforces Round #717 (Div. 2) C. Baby Ehab Partitions Again
思维好题,解锁背包新用法思路:先来想想什么情况下可以不删除? 很容易想到,如果原序列和为奇数的话,任意分两组必定都是不相等的两组。但和为偶数的时候的呢?因为和 s 是偶数,我们只需看其中一组能不能凑够是s/2就行了,不妨令m=s/2。接下来我们可以用01背包来判定。为什么呢?先让我们来想想01背包是用来干嘛的? 在不超过背包容量,每种商品最多取一次的前提下可以取到商品的最大价值!!!将本题代入01背包:即背包容量为m,求不超过m的选择方案的最大值,因为每个商品 体积==价值,总体积不超过背包容量m,所以选转载 2021-04-23 10:46:06 · 55 阅读 · 0 评论 -
B要打炉石(最长不下降子序列O(N^N)模板)
https://ac.nowcoder.com/acm/problem/15032#include<bits/stdc++.h>#define ll long long#define ios ios::sync_with_stdio(false);cin.tie(0)#define rep(i,a,b) for(int i=a;i<=b;++i)using namespace std;int a[105], b[105];void sovle(){ int n原创 2021-04-19 20:33:12 · 47 阅读 · 0 评论 -
烟花(概率dp)
https://ac.nowcoder.com/acm/problem/18200分析:double x = 1.0000 - arr[i];double y = arr[i];dp[i][j] = p(上次没炸) + p(上次炸了)注意不能超过k次#include<bits/stdc++.h>using namespace std;#define rep(i,a,b) for(int i=a;i<=b;++i)const int maxn = 1e5+5;doub原创 2021-04-19 15:12:22 · 63 阅读 · 0 评论 -
快饿死的XzzF(问题一分为二,再用动态规划)
https://ac.nowcoder.com/acm/problem/14714代码是猜的,没想到过了,灵感来自斐波那契数列。#include<bits/stdc++.h>using namespace std;void sovle(){ int n; cin >> n; long long dp[25]; memset(dp,0,sizeof(dp)); dp[1] = 2; dp[2] = 3; for(in原创 2021-04-15 13:56:43 · 259 阅读 · 0 评论 -
金币馅饼(动态规划走格子)
https://ac.nowcoder.com/acm/problem/25147能走的方式,如图:红色的位置置零当 j = 2, i 能选的位置 ,如下:当 j = 3, i能选的位置,如下图:以此类推:ac代码:#include<bits/stdc++.h>#define ios ios::sync_with_stdio(false);cin.tie(0)using namespace std;const int N = 110;const int M = 1原创 2021-04-15 13:24:02 · 150 阅读 · 0 评论 -
Charm Bracelet(经典例题0-1背包)
https://ac.nowcoder.com/acm/problem/25029输出23solution1这个方法会爆#include <bits/stdc++.h>const int maxn = 3405;using namespace std;int w[maxn],c[maxn];int dp[12888][12888];int main (){ int n, m; cin >> n >> m; for (int原创 2021-04-14 16:37:12 · 310 阅读 · 0 评论 -
牛客第一周补题
Woe is you – for your algorithms class you have to write a sorting algorithm, but you missed the relevant lecture! The subject was in-place sorting algorithms, which you deduce must be algorithms that leave each input number in its place and yet somehow a原创 2021-04-14 07:43:00 · 255 阅读 · 0 评论