08 2019 档案
摘要:// 求最大子列和 #include <cstdio> int a[5]; // O(n^3) int MaxSeq1(int a[], int n) { int max = 0, sum = 0; for(int i = 0; i < n; ++ i) { for(int j = i; j < n; ++ j) { sum = 0; for(int k = i; k <= j; ++ k) {
阅读全文
摘要:/* 计时程序 */ #include #include clock_t start, stop; /* clock_t 是clock()函数返回的变量类型 */ double duration; /* 记录被测函数运行时间, 以秒为单位 */ int main() { /* 不在测试范围内的准备工作写在clock()调用之前 */ start = clock(); // 开始计时...
阅读全文
摘要:例二: 多项式 运行时间不到一个tick, 那怎么才能显示出一个tick所用的时间呢?(即如何测出不到1个tick的程序运行时间?) 让被测函数重复运行多次, 使得测出的总的时钟打点数间隔充分长, 最后计算出被测函数平均每次运行的时间即可
阅读全文
摘要:先确定一段和sum=m的最长的长度,要最长则起点从1开始,根据等差求和,len*(len+1)/2=m;放缩法则len^2<2*m,所以len=pow(2.0*m,0.5);现在根据长度确定起点L,根据等差求和公式,((len+L-1)+L)*len/2=m; => L=(2*m/len+1-len
阅读全文
摘要:参考链接: https://www.cnblogs.com/NYNU-ACM/p/4236795.html 题上说的A 和B 的长度不超过15,因为A和B 是十六进制数,如果长度不考虑正负号的话,一个数字表示4位二进制数,所以A 、B的位数是60位,所以定义A、B时,要定义为64位。当然如果考虑正负
阅读全文
摘要:#include #include using namespace std; int f[30], F[30]; int main() { char c; int n, m, p; cin >> n; for(int i = 1; i > c >> m; if(c >= 'a' && c = 'A' && c <= 'Z') p = F[c - 'A' + 1];...
阅读全文
摘要:#include #include using namespace std; void deal(string &s) { int len = s.length(); if(s.find('.') != string::npos) { for(int i = len - 1; s[i] == '0'; -- i) { len --; } s = s....
阅读全文
摘要:#include int main() { int n; while(scanf("%d", &n) != EOF) { int k = 0; for(int i = 1; i <= n; ++ i) if(n % i == 0) k ++; if(k % 2 == 0) printf("0\n"); else printf("1\n"); } ...
阅读全文
摘要:#include int main() { int n, m; while(scanf("%d %d", &n, &m) != EOF) { printf("+"); for(int j = 0; j < n; ++ j) { printf("-"); } printf("+\n"); for(int i = 0; i < m; ++ i) {...
阅读全文
摘要:#include #include using namespace std; int main() { stack s; int n; while(cin >> n) { while(n) { s.push(n % 2); n /= 2; } while(!s.empty()) { cout << s.top(); s.pop(); ...
阅读全文
摘要:解题思路:1递推递推,先分析下直线分割平面的情况,增加第n条直线的时候,跟之前的直线最多有n-1个交点,此时分出的部分多出了(n-1)+1; 2折线也是同理,f(1)=2,f(2)=7,先画好前面n-1条折线,当增加第n条拆线时,此时与图形新的交点最多有2*2(n-1)个,所以分出的部分多出了2*2
阅读全文
摘要:Brexit uncertainty spurs Bank of England to cut growth forecasts退欧不确定性拖累英国经济前景
阅读全文
摘要:这个道题就是求N中有多少中M个数的错排。 因此先找到N个新郎中M个错一共有几种,显然是CMN=N!/(M!*(N-M)!)。即CMN=N!/M!/(N-M)!。 然后在求出M个数的错排个数,递推关系:f[n]=(n-1)*(f[n-1]+f[n-2])
阅读全文
摘要:全错概率 = 错误的情况 / 全部的情况 1. 全部的情况为 n!2. 对错误的情况进行讨论: (1) 要保证全错,第一个必然不能拿到自己的名字,所以第一个人有(n-1)中选择。(2) 第二个人如果拿的是第一个人的名字,就变成了求 (n-2) 人全错的概率,如果拿的不是第一个人的名字,就变成了求 (
阅读全文
摘要:#include long long int memo[50]; long long int f(long long int n) { memo[1] = 3; memo[2] = 8; for(long long int i = 3; i <= n; ++ i) { memo[i] = 2 * memo[i - 1] + 2 * memo[i - 2]; } ...
阅读全文
摘要:2*n方格,铺1*2骨牌。我们可以"自左向右"进行此过程。设f[i]表示用1*2骨牌铺2*i方格的不同方案总数,由于1*2骨牌既可以横着放,又可以竖着放,因此: (1)当前面2*(i-1)方格区域已经铺满时:可以竖着放一块1*2骨牌将整个区域铺满,故此时方案总数为f[i-1]; (2)当前面2*(i
阅读全文
摘要:#include long long int memo[55]; long long int f(int n) { memo[1] = 3; memo[2] = memo[3] = 6; for(int i = 4; i <= n; ++ i) { memo[i] = memo[i - 1] + 2 * memo[i - 2]; } retu...
阅读全文
摘要:本题跟超级楼梯类似, 当前一步的情况由n-1与n-2决定, 此时f()函数中传入的参数是两点之间的间隔+1(也就是转换成从点1开始到达其他点的路线数) 还需注意本题的数据类型(long long int) 输入输出的占位符为%lld
阅读全文
摘要:#include #include #include using namespace std; int main() { string s; char p[7] = {'~','!','@','#','$','%','^'}; int n, a, b, c, d; cin >> n; set t; for(int i = 0; i > s; if(s.length(...
阅读全文
摘要:#include int f(int n) { if(n == 0) return 3; return (f(n - 1) - 1) * 2; } int main() { int n, a; scanf("%d", &n); while(n --) { scanf("%d", &a); printf("%d\n", f(a)); } re...
阅读全文
摘要:#include int memo[45]; int f(int n) { memo[2] = 1; memo[3] = 2; for(int i = 4; i <= n; ++ i) { memo[i] = memo[i - 1] + memo[i - 2]; } return memo[n]; } int main() { int n, m; scanf("...
阅读全文
摘要:#include int amicable(int n) { int sum = 0; for(int i = 1; i < n; ++ i) if(n % i == 0) sum += i; return sum; } int main() { int n, a, b, p, q; scanf("%d", &n); while(n --) { scanf("...
阅读全文
摘要:程序在时间限制内没运行结束,就会出Output Limit Exceeded错误程序返回的结果是一直输出某个结果,死循环输出的那种
阅读全文
摘要:#include #include using namespace std; typedef struct { int s; int e; }Ti; bool cmp(const Ti &a, const Ti &b) { return a.e = k.e) { k = t[i]; sum ++; } } printf("%d\n", sum)...
阅读全文
摘要:计算几何中计算三角形面积 在计算几何里,我们知道,△ABC的面积就是“向量AB”和“向量AC”两个向量叉积的绝对值的一半。其正负表示三角形顶点是在右手系还是左手系。 所以得到三角形面积 特别注意: 以上得到是有向面积(有正负)! 凸多边形的三角形剖分 很自然地,我们会想到以 P1为扇面中心,连接P1
阅读全文
摘要:多边形面积公式 如果逆时针给出点坐标,值为正, 如果顺时针给出点坐标,值为负。 包括凸凹多边形 实质为==第一个点与第二个点 第二个点与第三个点 一直到第n个点与第一个点的 叉乘 == 的和
阅读全文
摘要:#include int main() { int a, b, c; while(scanf("%d %d", &a, &b) && (a != 0 || b != 0)) { c = 1; for(int i = 0; i < b; ++ i) { c = c * a % 1000; } printf("%d\n", c); } return 0;...
阅读全文