- 博客(41)
- 资源 (1)
- 收藏
- 关注
原创 Codeforces Round 893 (Div. 2) E1. Rollbacks (Easy Version)
总结:终于把这个E题过了,虽然比赛时没过,但也算差点top200呀2333记录一下赛后一小时内自主补E题,说明前面的题还是做得不够快呀2333。思路:单点更新+离线莫队区间查询区间不同数字个数+栈保留last_state。
2023-08-16 01:32:54
289
原创 Codeforces Round 892 (Div. 2) C. Another Permutation Problem 纯数学方法 思维题
【代码】Codeforces Round 892 (Div. 2) C. Another Permutation Problem 纯数学方法 思维题。
2023-08-13 01:04:46
659
原创 Codeforces Round 890 (Div. 2) supported by Constructor Institute C. To Become Max
【代码】【无标题】
2023-08-06 09:20:14
242
原创 Codeforces Round #785 (Div. 2) C. Palindrome Basis
C. Palindrome Basis 题干略 AC代码: #include <iostream> #include <algorithm> #include <string> #include <cstring> #include <set> #include <map> #include <queue> #include <stack> #include <cstdio> #include <
2022-05-01 01:32:46
248
原创 L3-3 自然语言 (30 分)
今晚进行了天梯赛的赛前选拔比赛,其中的第15道题,最开始以为是要构建语法分析树,但简单想了想发现就是一个思维题。 题解: 略(请参考源代码,代码逻辑很清晰) 源代码: #include <iostream> #include <algorithm> #include <string> #include <vector> #include <queue> #include <stack> #include <cstring>
2022-03-20 22:53:43
563
原创 [WinError 193] %1 不是有效的 Win32 应用程序。 Error loading “D:\python1\venv
对于这种东西,有人说用conda装,但我认为conda实在是太不好装了。其实问题很简单,它会提示你那个路径下的dll文件是32位的,比如caffe2.dll是32位的。那我们只需要按照所给路径把该dll文件删除即可。由此问题得以解决。根本不需要什么anaconda。啦啦啦。 ...
2021-04-13 16:19:54
1061
原创 在 window 上安装GPU版本的torch
pip install https://download.pytorch.org/whl/cu80/torch-1.0.0-cp37-cp37m-win_amd64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 如果你安装完毕后出现了如下错误: Could not install packages due to an Environme 则你只需要再Terminal中 再执行一遍一下代码就行了: pip install ht
2021-02-04 11:39:32
2948
6
原创 Codeforces Round #697 (Div. 3) F题 Unusual Matrix 和 G题 Strange Beauty
F题: 此题考查位运算,同样是一道思维题。 //Dlove's template #include <iostream> #include <algorithm> #include <string> #include <cstdio> #include <cmath> #include <cstdlib> #include <cstring> #include <ctime> #include <map&g
2021-01-26 22:57:10
178
原创 Codeforces Round #697 (Div. 3) D题 Cleaning the Phone 和 E题 Advertising Agency
D题考察的是贪心,注意用快读,用cin超时。 //Dlove's template #include <iostream> #include <algorithm> #include <string> #include <cstdio> #include <cmath> #include <cstdlib> #include <cstring> #include <ctime> #include <map&
2021-01-26 20:46:17
187
原创 Educational Codeforces Round 102 (Rated for Div. 2) D题 Program
这题就是把加号抽象成1,减号抽象成-1,记做数组a(1~n标号),然后求出数组a的前缀和数组为s。(s[0] = 0) 然后对于区间[l,r],答案就是然后分别在前缀和数组s上对区间[0,l-1],[r+1,n]查询最小值,最大值,分别记为minl1,maxl1,minl2,maxl2。那么此时的答案就是 max(maxl1,maxl2)-min(minl1,minl2)+1。 AC源码如下: //Dlove's template #include <iostream> #include <
2021-01-15 01:12:02
730
原创 windows pip 安装 torch
直接在pycharm里的Terminal里输入下面这条语句就可以安装torch了 pip install torch==1.6.0+cpu torchvision==0.7.0+cpu -f https://download.pytorch.org/whl/torch_stable.html 安装好torch之后,使用如下语句即可调用torch包 import torch.nn as nn ...
2020-11-16 13:29:29
667
原创 关于map的去重
我们知道map可以以键为依据去重排序。 而去重方式有两种。多余键同值不同的pair。 已知 map<int,int> mp;键值对为pair<x,y> ; 如果用 mp.insert(make_pair(x,y))插入,则是对于同一个键而言,保留最早输入的值。 而对于mp[x] = y插入,则是对同一个键而言,保留最晚输入的值,即键同值覆盖原则。 上述两种插入方式去重方式是不一样的。 ...
2020-11-10 14:27:59
3667
原创 ST表解决RMQ问题
#include <iostream> #include <algorithm> #include <cmath> #include <cstdio> using namespace std; const int maxn = 21; int a[1<<maxn]; int f[1<<maxn][maxn]; int n; inline int read(){ int x = 0,f = 1;char ch = getchar();
2020-10-26 16:56:10
206
原创 Codeforces Round #665 (Div. 2) D. Maximum Distributed Tree
考点:图论,数论。 #include <iostream> #include <algorithm> #include <cstring> #include <vector> using namespace std; const int maxn = 100010; const long long mod = 1e9+7; long long p[maxn]; vector<long long> v[maxn]; long long vis[max
2020-08-22 00:43:40
337
原创 Codeforces Round #664 (Div. 2) C. Boboniu and Bit Operations(非DP方法)
我当时看得时候就觉得是DP,然而,我DP的水平和数学水平差远了。如果用DP做,肯定AC不了。所以果断决定,思考DP以外的方法。 然后我通过数学知识:a&b <= min(a,b); a|b >= max(a,b) 把&看成1的交集, | 看成1的并集。也可画文氏图参考。 然后我就把这道DP题转化为思维题,构造出每个c[i]的值可见数学力量的强大。 #include <iostream> #include <algorithm> us
2020-08-13 09:25:38
243
原创 Codeforces Round #663 (Div. 2) C - Cyclic Permutations
Codeforces Round #663 (Div. 2) C - Cyclic Permutations 题目链接:https://codeforces.com/contest/1391/problem/C 满足条件的排列数等于总排列数-不满足条件的排列数。 而不满足条件的排列数通过找规律: 如n = 4时: 不满足条件的排列有: 1234 4321 2431 1342 3421 1432 2341 一共八个,但可以分为4组。一位第1,2,第3,4,第5,6,第7,8个排列,分别是reverse的。那么
2020-08-10 10:46:42
262
原创 inline关键字——内联函数
短小且反复调用的函数,其函数调用时间不能远远小于函数执行时间。则推荐使用内联函数。 而内联函数既具备函数的可读性,像调用函数一样重复使用一段代码,且不用花费调用函数的额外时间。 但内联函数实质是在编译过程中,将函数体代码插入到调用语句处,从而使可执行程序的体积增加。这是计算机科学中典型的以空间换取时间的方法。 注:递归函数不要写成内联函数。inline只是你给编译器提一个建议,希望它将函数内联,至于它会不会执行就不一定了。 基本上对于复杂的函数,编译器是不会同意将它内联的,就算同意了,也只会使编译更耗时,所
2020-08-03 22:00:56
464
原创 旅游规划 (25分)
有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。 dijkstra算法: #include <iostream> #include <algorithm> #include <vector> #include <queue> using namespace std; const int I...
2020-08-03 16:52:39
880
原创 Codeforces Round #658 (Div. 2) C题
C1 暴力可过 #include <iostream> #include <algorithm> #include <string> using namespace std; const int maxn = 200010; int a[maxn]; int main(){ int t; cin >> t; while(t--){ int n; cin >> n; string s1,s2; cin >> s1
2020-07-22 09:02:50
225
原创 Codeforces Round #657 (Div. 2) A - Acacius and String
这题就是暴力。暴力一定要有耐心,绝对不能慌。暴力不出来,换个方法暴力,还暴力不出来,说明基础不劳2333 源码: #include <iostream> #include <algorithm> #include <string> using namespace std; string ss = "abacaba"; int main(){ int t; cin >> t; while(t--){ int m; cin >> m;
2020-07-19 20:59:29
304
原创 Codeforces Round #657 (Div. 2) B题 Dubious Cyrpto
m是被除数,a是除数,n的商,b-c是余数。切记,考虑b-c是负数的情况。切记 !切记 ! 二话不说上代码: #include <iostream> #include <algorithm> using namespace std; int main(){ int t; cin >> t; while(t--){ long long l,r,m; cin >> l >> r >> m; long long a = l
2020-07-19 20:32:52
441
原创 欧拉定理与扩展欧拉定理
欧拉定理:若gcd(a,p)=1,则a^φ§≡1(mod p) 欧拉定理特例:费马小定理:若p是质数,则对于任意整数a,有a^p≡a(mod p)。 扩展欧拉定理: 欧拉函数: 对于一个正整数n,小于等于n且和n互质的正整数(包括1)的个数,记作φ(n) 。 通式:φ(n)=n*(1-1/p1) * (1-1/p2) * (1-1/p3) * (1-1/p4) * …… * (1-1/pn), 其中p1, p2……pn为n的所有质因数,n是不为0的整数。记 φ(1)=1(唯一和1互质的数就是1本身)。 欧
2020-07-19 12:30:49
553
2
原创 快速幂加指数分解
例: a ^123456789%mod = a ^(1e8 * 1 )%mod * a ^(1e7 * 2 )%mod * a ^(1e6 * 3 )%mod * a ^(1e5 * 4 )%mod * a ^(1e4 * 5 )%mod * a ^(1e 3 * 6 )%mod * a ^(1e2 * 7 )%mod * a ^(1e1 * 8 )%mod * a ^(1e0 * 9 )%mod 若a的指数极大则可用字符串存储: 由此核心代码如下: 快速幂: int mod; long long
2020-07-19 11:41:13
292
原创 裴蜀定理与扩展欧几里德算法
裴蜀定理又称贝祖定理:对于给定的正整数a,b,方程ax+by=c有解的充要条件为c是gcd(a,b)的整数倍。 裴蜀定理的推广:方程ax+by+cz+…+nm=f(其中a,b,c…n,f为整数)有解的充要条件是f为gcd(a,b,c,…,n)的整数倍。 裴蜀定理的应用: 给定一个序列{an},寻找一个整数序列{bn}使得a1b1+a2b2+…+an*bn值最小(要求最小值为正数),求这个最小值。 解:根据裴蜀定理的推广,原式最小值即为gcd(a1,a2…an)。 扩展欧几里德算法是为求解裴蜀定理服务的。即通
2020-07-19 10:26:07
574
原创 字符串前缀子串与后缀子串
若字符串为“abcde”,则删除字符串c即为"ab"+"de"那么"ab"即为字符串"abcde"的前缀子串,"de"即为字符串"abcde"的后缀子串。由此,我们可以得到,一个字符串删除一定连续字符后得到的新串,可以用该字符串的前缀子串和后缀子串拼接得到。仅以此为例,表述一种算法思维。 ...
2020-07-16 22:55:19
3452
1
原创 洛谷P2485 [SDOI2011]计算器
case 1 :快速幂取模 ; case 2:exgcd求乘法逆元,注意y%p的逆元存在条件为gcd(y,p) = 1 ,即y 与 p 互质; case 3:扩展BSGS 。 源码: #include <iostream> #include <algorithm> #include <map> #include <cmath> using namespace std; long long t,k; long long y,z,p; long long po
2020-07-14 11:37:41
257
原创 BSGS
给定一个质数 p,以及一个整数 b,一个整数 n,现在要求你计算一个最小的 x,满足 y ^x ≡n(modp)。 思路 :设 x = am-b, 那么原式可化为 : y ^am ≡ny ^b(modp) 。 那么 0 <= b <= m-1 , 1 <= a <= m+1 。复杂度为 max(m,p/m), 所以当 m = sqrt§ 时复杂度最低。 所以我们令 m = sqrt§ 。 #include <iostream> #include <algorithm
2020-07-14 10:30:39
279
原创 洛谷 P5329 [SNOI2019]字符串
暴力是过不了的,哈希也不行。只能找规律。我们可以发现计删除原串第i的字符后的新串为pi,则任意pi与pi+1(i<m,m为原串长度)相比较,至多只有一个字符不同,而这一个不同的字符则恰恰是比较pi与pi+1的字典序的依据。 源码如下: #include <iostream> #include <algorithm> #include <list> #include <string> using namespace std; const int maxn
2020-07-13 13:19:48
334
原创 蒜头君的数轴:正反gcd
题目:蒜头君的数轴 今天蒜头君拿到了一个数轴,上边有 nnn 个点,但是蒜头君嫌这根数轴不够优美,想要通过加一些点让它变优美,所谓优美是指考虑相邻两个点的距离,最多只有一对点的距离与其它的不同。 蒜头君想知道,他最少需要加多少个点使这个数轴变优美。 输入格式 输入第一行为一个整数 n(1≤n≤105)n(1 \leq n \leq 10^5)n(1≤n≤105),表示数轴上的点数。 第二行为 nnn 个不重复的整数 x1,x2,…,xn(−109≤xi≤109)x_1,x_2,…,x_n(-10^9 \le
2020-07-09 13:54:47
281
原创 求数组所有元素的最大公因数
利用优先级队列。 int get_gcd(){ priority_queue<int, vector<int>, greater<int>> q; for(int i = 0;i<n;i++){ q.push(b[i]); } int maxl = 1; while(1){ int flag = 0; priority_queue<int, vector<int>, greater<int> > p; w
2020-07-09 13:27:59
1779
原创 线性求乘法逆元
用于求一连串数字对于一个 mod p的逆元。如果只是求一个数的逆元建议使用费马小定理或扩展欧几里德定理。 线性算法求逆元的原理: 已知, (1/1)≡1 (mod p) , 设 p=k∗i+r,(1<r<i<p) , 即k 是 p/i的商 , r 是 p/i 的余数。 即 k∗i+r≡0 (mod p)。 ≡左右两边同时乘上(1/i)*(1/r) , 即 k * (1/r) + (1/i) ≡0 (modp) 。 移项可得 , (1/i) ≡ - k * (1/r) (mod p)
2020-07-07 09:47:31
1541
2
原创 Codeforces Global Round 9 - E - Inversion SwapSort
求逆序数,并利用STL的multimap快速进行数据处理。 本题就是一个观察样例找规律题。我们只需要用合适的方式把这种规律描述出来即可。 规律为:m的个数即为原序列逆序数对个数。然后将这些逆序数按照cmp顺序输出。 cmp:若逆序对下标的pair为(i, j),则在原序列a中,a[i]小的优先输出,若a[i]相同,则比较 j ,j 大者先输出。 即 : const int maxn = 1010; int a[maxn]; typedef pair<int,int> P; bool cmp(P
2020-07-05 10:34:54
661
原创 Codeforces Global Round 9 D Replace by MEX
一定注意数组范围,不然会被Hack。 a,s数组可以只开1010。而数组b一定是要开2010,开1010是不够的,会被Hack。我这方便起见,全部开为2010。 这就一个找规律的题。先找规律,再随机分配。 #include <iostream> #include <algorithm> #include <cstring> using namespace std; const int maxn = 2010; int a[maxn]; int b[maxn]; int s
2020-07-05 08:16:29
163
原创 快速判断1e4以内正整数是否为素数
理论基础:一个合数一定有一个素因子 <= sqrt(n) 。 证明: 一个合数n肯定有素因子,并且在[2,n-1]上。若有一个素因子x大于等于sqrt(n),就必然有一个因子n/x小于等于sqrt(n),而n/x必有一个素因子小于等于sqrt(n) ,而n/x的素因子也是n的素因子。 已知:n <= 1e4。 代码如下: #include <iostream> #include <algorithm> #include <cmath> using namesp
2020-07-03 22:12:35
323
原创 Codeforces Round #654 (Div.2)E1 Asterism
#include <iostream> #include <algorithm> #include <vector> using namespace std; const int maxn = 100010; long long a[maxn]; vector<long long> v; long long n,p; long long f(long long x){ long long ans = 1; long long r = n; for(lo
2020-07-02 14:54:34
258
原创 素数与素数筛
普通素数判断 #include <iostream> #include <algorithm> #include <cmath> using namespace std; int main(){ int n; cin >> n; if(n == 2){ cout << "Yes" << endl; return 0; } if(n%2 == 0||n <= 1){ cout << "NO" &
2020-06-30 10:57:30
148
原创 Codeforces Round #652 (Div. 2) D题
原题链接:https://codeforces.com/contest/1369/problem/D 思路:树形DP 源码: #include <iostream> #include <algorithm> using namespace std; const int mod = 1e9+7; const int maxn = 2000010; long long dp[maxn][2] = {0}; void init(){ for(long long i = 3;i<m
2020-06-24 00:58:59
1275
原创 关于JAVA文件里写很多类怎么写
今天写JAVA实验发现在与文件名同名的pubilc类写其他类报错,拿到pubilc类外写其他类也报错,于是就查阅一下资料: 一个.java文件中可以有很多类。不过注意以下几点: 1.public 权限的类只能有一个(也可以一个都没有,但最多只有1个) 2.这个.java文件的文件名必须是public类的类名(一般的情况下,这里放置main方法是程序的入口。) 3.若这个文件中没有public的类,则文件名随便是一个类的名字即可 4.用java 编译这个.java文件的时候,它会给每一个类生成一个.class
2020-06-01 20:05:53
773
原创 原来乘法还可以这样算。
欢迎大家关注我的个人公众号,代码实战。原文在公众号里面。 https://mp.weixin.qq.com/s?__biz=MzI5MzE2Mjc5MQ==&mid=2247483665&idx=1&sn=f97e438343f78190caeb933d62f35565&chksm=ec771b59db00924f983589aec6b0d90ce48a7460a34eb041fe42ed3fa4103c5aa574195d9387&token=1328605126&
2020-06-01 13:41:43
577
原创 类模板不是类!!!
关于C++类模板的几点想法: 师曰:模板类是类模板实例化后的一个产物,说个具体点的例子吧,我们把类模板比作是一个做饼干的模子,而模板类就是用这个模子做出来的饼干,至于这个饼干是什么味道的就要看你自己在实例化时用的是什么材料了,你可以做巧克力饼干,也可以做牛奶饼干,这些饼干出了材料不一样外,其它的东西都是一样的了。 所以,类模板虽然长得像类,但它本质不是类,类模板只有实例化为模板类后,模板类才是真正的类,而模板类可以生成新的对象,而类模板本质不是类,故而更没有什么生成新对象之说。只有类才能生成对象,而类模板不
2020-06-01 13:05:21
429
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅