- 博客(150)
- 收藏
- 关注
原创 无向图 找连通分量是圈的分量个数
#include <bits/stdc++.h>#define INF 0x3f3f3f3f#define eps 1e-5typedef long long LL;const double pi = acos(-1.0);const long long mod = 25 * 1E8;using namespace std;const int N = 200 * 1...
2018-05-20 21:45:43
808
原创 2018.3.31
Terahertz radiation in graphene hyperbolic medium excited by an electric dipole Feng X, Gong S, Zhong R, et al. Terahertz radiation in graphene hyperbolic medium excited by an electric dipole.[J]....
2018-03-31 20:26:50
298
原创 大学生数学图书馆
集合论基础集合论的主要概念(基数、序数、超限归纳)对于所有数学家都是最基础的,并非仅限于研究数理逻辑或集合论拓扑的专家。通常分析、代数或拓扑学的课程只会给出基础集合论的一个概貌,然而事实上它足够重要、有趣和简单,值得慢慢地学习品味。《集合论基础》使得读者能够以悠闲品味的方式学习集合论的内容,它适用于广大范围的各类读者,从本科生直至那些想要最终掌握超限归纳并且理解它为何总被Zorn引理替代的...
2018-03-30 18:53:52
746
原创 围度还原
#include #define INF 0x3f3f3f3f#define eps 1e-6typedef long long LL;const double pi = acos(-1.0);const long long mod = 1e9;using namespace std;const int num = 36;const double r = 400;const
2018-01-24 17:09:27
275
原创 D - Areas on the Cross-Section Diagram Aizu - ALDS1_3_D
#include #define INF 0x3f3f3f3f#define eps 1e-6typedef long long LL;const double pi = acos(-1.0);const long long mod = 1e9;using namespace std;stackint> s1;stackint,int> > s2;vectorint> an
2018-01-09 15:58:00
405
原创 C - Doubly Linked List Aizu - ALDS1_3_C
#include #define INF 0x3f3f3f3f#define eps 1e-6typedef long long LL;const double pi = acos(-1.0);const long long mod = 1e9;using namespace std;string name;listint> l;int N,q;int main(){
2018-01-09 14:03:08
321
原创 B - Queue Aizu - ALDS1_3_B
#include #define INF 0x3f3f3f3f#define eps 1e-6typedef long long LL;const double pi = acos(-1.0);const long long mod = 1e9;using namespace std;int N,q,T;string name;queuestring,int> > Q;
2018-01-09 14:02:23
314
原创 A - Stack Aizu - ALDS1_3_A
#include #define INF 0x3f3f3f3f#define eps 1e-6typedef long long LL;const double pi = acos(-1.0);const long long mod = 1e9;using namespace std;int main(){ //ios_base::sync_with_stdio(
2018-01-09 14:01:33
367
原创 Quantum Cascade Laser(QCL)
量子级联激光器的工作原理与通常的半导体激光器截然不同,它打破了传统p-n结型半导体激光器的电子-空穴复合受激辐射机制,其发光波长由半导体能隙来决定。QCL受激辐射过程只有电子参与,其激射方案是利用在半导体异质结薄层内由量子限制效应引起的分离电子态之间产生粒子数反转,从而实现单电子注入的多光子输出,并且可以轻松得通过改变量子阱层的厚度来改变发光波长。 量子级联激光器比其它激光器的优势在于它的级联
2017-12-12 14:12:11
3131
原创 Distributed feedback laser (DFB)
A distributed feedback laser (DFB) is a type of laser diode, quantum cascade laser or optical fiber laser where the active region of the device is periodically structured as a diffraction grating. The
2017-12-12 14:06:02
2112
原创 手写堆
int heap[MAX_N],sz = 0;void push(int x){ //做一个插入 把X先放在最后一个位置 再依次向上比较 int i = sz++; while(i > 0) { int p = (i - 1) / 2; if(heap[p] < x) break; heap[i
2017-03-29 23:08:43
563
原创 完全背包问题
这里相比0 - 1背包,不同的是每种物品的个数上升到无限个,让你找到最优的拿法。对于上面这个图片,在这里大家看不懂的可能是倒数第2行怎么到倒数第一行的。对此,大家只需要看看dp[i + 1][j]的定义就可以了dp[i + 1][j] = max{dp[i - k * w[i]] + k * v[i] | k >= 0}; = max{dp[i][j - k * w[i]]
2017-03-28 23:19:12
577
原创 LCS(Longst Common Subsequence)
//LCSint n,m;char s[MAX_N],t[MAX_M];int dp[MAX_N + 1][MAX_M + 1];void solve(){ for(int i = 0;i < n;i++) for(int j = 0;j < m;j++) { if(s[i] == t[j]) dp[
2017-03-28 22:20:52
409
原创 0 - 1背包
递归写法int n,w;int w[MAX_N],v[MAX_N];int rec(int i,int j){ int res; if(i == n) res = 0; else if(j < w[i]) res = rec(i + 1,j); else res = max(rec(i + 1,j),rec(i +
2017-03-28 22:02:48
354
原创 埃氏筛法 筛素数
int prime[MAXN];bool is_prime[MAXN + 1];//埃氏筛法,返回n以内的素数个数//O(nloglogn),可近似认为是线性的int prime_num(int n){ int p = 0; for(int i = 0;i <= n;i++) is_prime[i] = 1; is_prime[0] = is_pri
2017-03-28 21:31:52
349
原创 gcd exgcd
#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.tie(0);#define INF 0x3f3f3f3f#define eps 1e-5typedef long long LL;const double pi = acos(-1.0);const long long mod = 25 * 1E8;usi
2017-03-28 21:19:41
661
原创 Millionaire(2008 APAC local onsite C)
int M,X;double P;double dp[2][(1 << MAX_N) + 1];int main(){ //freopen("input.txt","r",stdin); //freopen("output.txt","w",stdout); ios_base::sync_with_stdio(0);cin.tie(0); int n = 1 <<
2017-03-28 21:03:57
957
原创 2017.03.27小结
首先要说的是个数学小知识。 给你两个N维向量(x1,x2,x3,…,xN) 和(y1,y2,y3,…,yN) 你可以任意交换这两个向量中分量的顺序,你要做的事情就是使得这两个向量的内积最小 即 x1 * y1 + x2 * y2 + x3 * y3 + … + xN * yN 最小解法:将X从小到大排列,再将Y从大到小排列,相乘就是答案。思路: 当N = 2时,我们来看看 假定此时X已经按
2017-03-27 23:07:26
365
原创 Codeforces Round #405 (rated, Div. 2, based on VK Cup 2017 Round 1)
题意:给一个顶点和边不超过15W的图,问你这个图的所有连通分量是不是一个完全子图(if the graph is a set of disjoint cliques),对此,我们只需要对所有连通分量跑一下DFS,看看每个连通分量中的边数和顶点数是不是满足完全子图的关系就可以了 cnt_edges != (long long) cnt_vertices * (cnt_vertices - 1)#in
2017-03-27 12:27:27
370
原创 Aizu ALDS1_2_D Shell Sort(希尔排序)
#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.tie(0);#define INF 0x3f3f3f3f#define eps 1e-5typedef long long LL;const double pi = acos(-1.0);const long long mod = 25 * 1E8;usi
2016-12-05 20:06:03
546
原创 Aizu ALDS1_2_C Stable Sort(稳定排序)
#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.tie(0);#define INF 0x3f3f3f3f#define eps 1e-5typedef long long LL;const double pi = acos(-1.0);const long long mod = 25 * 1E8;us
2016-11-29 13:20:45
672
原创 Aizu ALDS1_2_B Selection Sort(选择排序)
#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.tie(0);#define INF 0x3f3f3f3f#define eps 1e-5typedef long long LL;const double pi = acos(-1.0);const long long mod = 25 * 1E8;us
2016-11-29 12:54:51
326
原创 Aizu ALDS1_2_A Bubble Sort(冒泡排序)
#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.tie(0);#define INF 0x3f3f3f3f#define eps 1e-5typedef long long LL;const double pi = acos(-1.0);const long long mod = 25 * 1E8;us
2016-11-29 12:47:11
259
原创 Aizu ALDS1_1_A Insertion Sort(插入排序)
#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.tie(0);#define INF 0x3f3f3f3f#define eps 1e-5typedef long long LL;const double pi = acos(-1.0);const long long mod = 25 * 1E8;us
2016-11-29 12:38:56
364
原创 Aizu ALDS1_1_D Maximum Profit
题意:给你一串数,让你找到这串数字中后面的数减前面的数差值最大的那个值。 做法:从头到尾扫一遍,每次执行2个操作 先维护到目前为止的最优值MAX = max(MAX,a[i] - MIN); 然后再更新到目前为止的最小值MIN = min(MIN,a[i]);#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.
2016-11-29 12:23:35
447
原创 Codeforces round #382
A - Ostap and Grasshopper#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.tie(0);#define INF 0x3f3f3f3f#define eps 1e-5typedef long long LL;const double pi = acos(-1.0);const lon
2016-11-28 13:58:57
550
原创 Petrozavodsk Winter-2013. Ural FU Contest
题目来源:http://opentrains.snarknews.info/~ejudge/team.cgi?contest_id=001417训练时间:2016.08.19 12:10 - 17:10题面:20160819.pdfA题意:给你a,b,n,c,d,m,问你满足条件的x有多少个?解法:只要判断x^n^(m/gcd)和x^m^(n/gcd)相不相等,相等答案为gcd,否则无解。C题意:给
2016-08-19 19:41:41
540
原创 Steiner 椭圆及其结论
两个有趣的问题: 1)在△ABC的无数个外接椭圆中,哪一个的面积最小? 外接Steiner 椭圆 2)在△ABC的无数个内接椭圆中,哪一个的面积最大? 内接Steiner 椭圆 可以证明: 外接Steiner 椭圆的面积为x=4π△27−−√x=\frac{4π△}{\sqrt{27}} 内接Steiner 椭圆的面积为x=π△27−−√x=\frac{π△}{\sqrt{27}}几个
2016-08-19 18:05:25
2270
原创 线段树版(单点更新,区间查询)
#define lid (id << 1)#define rid (id << 1 | 1)const int N = 100005;struct Segtree{ int l,r; int Max,sum;}tr[4 * N];int a[N];void push_up(int id){ tr[id].sum = tr[lid].sum + tr[rid].sum
2016-08-19 16:57:20
595
原创 Codeforces Round #258 (Div. 2) B. Sort the Array
题意:给你一个数组,问你是否可以通过翻转一个区间[l,r]内的数字。来使得这个数组完全有序。解法:我们下对每个数字进行标号,然后对值进行排序,之后就只需要处理标号即可。找到标号与其位置不同的区间,判断其翻转过来标号是不是一个1-N的的排列即可。#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.tie(0);#def
2016-08-19 14:01:08
337
原创 Codeforces Round #360 (Div. 2) B Lovely Palindromes
题意:给你一个数字N,N最多有10W位。问你第N个偶数长度的回文数字是多少。解法:不难得出第i个偶数长度的回文数有一个特殊的性质,这个回文数就是N的字符串表示及其reverse()reverse( s1.begin(),s1.end() );看出来了后这显然是一个SB题#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);ci
2016-08-18 19:08:33
322
原创 Codeforces Round #367 (Div. 2) C
题意:给你N个字符串,以及改变这N个字符串的花费,要求你使得这N个字符串最后的顺序满足字典序,可以选择改变第i个字符串也可以选择不改变,改变的方法是把字符串反转。 问你最小的花费。解法: We will solve the problem with the help of dynamic programming.dp[i][j] is the minimum amount of energy tha
2016-08-17 18:57:13
317
原创 Codeforces Round #367 (Div. 2) A、B
A 水题,给出一个人的位置,再给出若干个出租车的位置和速度,问最少需要等多久可以等到第一辆出租车。#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.tie(0);#define INF 0x3f3f3f3f#define eps 1e-6typedef long long LL;const double p
2016-08-17 18:48:23
259
原创 Codeforces Round #308 (Div. 2) B. Vanya and Books
http://www.codeforces.com/problemset/problem/552/B题意:给你一个数N,问你从1到N所有的数的数字位数之和为多少。 解法: 不难看出,数对应的数字位数分别为: 1-9 1 10-99 2 100-999 3 …
2016-08-17 16:35:29
352
原创 Codeforces Round #142 (Div. 2) B. T-primes (数学、O(n)筛素数)
http://www.codeforces.com/problemset/problem/230/B题意:定义一个T-primes,如果一个数所有的因数只有3个,那么就称其为T-primes。让你判断N(1e5)个数,数的范围为(1e12)是不是T-primes。 解法:显然一个数如果是T-primes,那么它一定是个完全平方数,且它的平方根为一个素数,因此我们就只需要求出1e6内所有的素数即可。
2016-08-17 16:01:44
610
原创 Codeforces Round #277.5 (Div. 2) C. Given Length and Sum of Digits...
题意:给两个数N和S,让你构造一个数,这个数是N位的,且这个数的所有位之和为S,如果能构造,输出最大的和最小的数,如果不能构造,则输出-1 -1. 做法:对于最大数的构造,只要从最高位开始,能放多少就放多少,放到不能放为止。对于最小数的构造,第一位先放1,然后从最后一位开始放,注意几种特殊情况的判断。#include <bits/stdc++.h>#define _ ios_base::sync
2016-08-16 17:36:56
296
原创 UVA 129 - Krypton Factor
#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.tie(0);#define INF 0x3f3f3f3f#define eps 1e-6typedef long long LL;const double pi = acos(-1.0);const long long mod = 1e9 + 2015;
2016-08-15 17:29:50
292
原创 UVa 524 Prime Ring Problem (回溯)
题意:给你一个偶数N,让你输出一个1到N的排列,这N个数构成一个圆,要求这个圆上所有相邻两个数之和都为素数,输出合法序列。 解法:直接按照题目要求回溯即可。每次模拟放一个合法的数,再看下一次能不能放。直到全放完为止。#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.tie(0);#define INF 0x3f3
2016-08-15 15:27:44
284
原创 cout与printf的混用问题
在某题的输出混用了cout与printf(),结果输出的顺序出错。 把原因归结为一个带缓冲而一个不带缓冲。 因为stdio.h中定义了像ungetc()这样的函数,其作用是将字符放回到输入流中。可见stdio中也是使用了缓冲的。 那么为什么cout与printf()混用会发生问题呢?#include <iostream> using namespace std;int main() {
2016-08-13 17:40:38
7335
1
原创 UVA 10976 Fractions Again?!
题意:给一个数N,让你找出所有的整数 x >= y,使得满足这个等式: 1/N = 1/x + 1/y 解法:由于 x >= y,所以只需要枚举y,y的范围显然是在[N + 1,2 * N]之间,再看x是否合法即可。#include <bits/stdc++.h>#define _ ios_base::sync_with_stdio(0);cin.tie(0);#define INF 0x3f
2016-08-13 17:36:04
268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人