08 2019 档案

摘要:1. 顺序表 2. 链表 阅读全文
posted @ 2019-08-29 15:16 青衫客36 阅读(163) 评论(0) 推荐(0) 编辑
摘要:// 求最大子列和 #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) { 阅读全文
posted @ 2019-08-27 19:20 青衫客36 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-08-27 17:49 青衫客36 阅读(91) 评论(0) 推荐(0) 编辑
摘要:/* 计时程序 */ #include #include clock_t start, stop; /* clock_t 是clock()函数返回的变量类型 */ double duration; /* 记录被测函数运行时间, 以秒为单位 */ int main() { /* 不在测试范围内的准备工作写在clock()调用之前 */ start = clock(); // 开始计时... 阅读全文
posted @ 2019-08-27 17:30 青衫客36 阅读(165) 评论(0) 推荐(0) 编辑
摘要:例二: 多项式 运行时间不到一个tick, 那怎么才能显示出一个tick所用的时间呢?(即如何测出不到1个tick的程序运行时间?) 让被测函数重复运行多次, 使得测出的总的时钟打点数间隔充分长, 最后计算出被测函数平均每次运行的时间即可 阅读全文
posted @ 2019-08-27 17:27 青衫客36 阅读(335) 评论(0) 推荐(0) 编辑
摘要:先确定一段和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 阅读全文
posted @ 2019-08-09 17:43 青衫客36 阅读(307) 评论(0) 推荐(1) 编辑
摘要:参考链接: https://www.cnblogs.com/NYNU-ACM/p/4236795.html 题上说的A 和B 的长度不超过15,因为A和B 是十六进制数,如果长度不考虑正负号的话,一个数字表示4位二进制数,所以A 、B的位数是60位,所以定义A、B时,要定义为64位。当然如果考虑正负 阅读全文
posted @ 2019-08-09 17:09 青衫客36 阅读(371) 评论(0) 推荐(0) 编辑
摘要:坐标排序是关键 阅读全文
posted @ 2019-08-04 18:07 青衫客36 阅读(404) 评论(0) 推荐(0) 编辑
摘要:#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];... 阅读全文
posted @ 2019-08-04 17:27 青衫客36 阅读(156) 评论(0) 推荐(0) 编辑
摘要:#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.... 阅读全文
posted @ 2019-08-04 13:13 青衫客36 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-08-03 22:54 青衫客36 阅读(109) 评论(0) 推荐(0) 编辑
摘要:#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"); } ... 阅读全文
posted @ 2019-08-03 21:41 青衫客36 阅读(155) 评论(0) 推荐(0) 编辑
摘要:#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) {... 阅读全文
posted @ 2019-08-03 17:33 青衫客36 阅读(212) 评论(0) 推荐(0) 编辑
摘要:#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(); ... 阅读全文
posted @ 2019-08-03 12:30 青衫客36 阅读(178) 评论(0) 推荐(0) 编辑
摘要:解题思路:1递推递推,先分析下直线分割平面的情况,增加第n条直线的时候,跟之前的直线最多有n-1个交点,此时分出的部分多出了(n-1)+1; 2折线也是同理,f(1)=2,f(2)=7,先画好前面n-1条折线,当增加第n条拆线时,此时与图形新的交点最多有2*2(n-1)个,所以分出的部分多出了2*2 阅读全文
posted @ 2019-08-03 12:22 青衫客36 阅读(258) 评论(0) 推荐(0) 编辑
摘要:Brexit uncertainty spurs Bank of England to cut growth forecasts退欧不确定性拖累英国经济前景 阅读全文
posted @ 2019-08-02 22:52 青衫客36 阅读(86) 评论(0) 推荐(0) 编辑
摘要:这个道题就是求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]) 阅读全文
posted @ 2019-08-02 19:28 青衫客36 阅读(200) 评论(0) 推荐(0) 编辑
摘要:全错概率 = 错误的情况 / 全部的情况 1. 全部的情况为 n!2. 对错误的情况进行讨论: (1) 要保证全错,第一个必然不能拿到自己的名字,所以第一个人有(n-1)中选择。(2) 第二个人如果拿的是第一个人的名字,就变成了求 (n-2) 人全错的概率,如果拿的不是第一个人的名字,就变成了求 ( 阅读全文
posted @ 2019-08-02 18:59 青衫客36 阅读(235) 评论(0) 推荐(0) 编辑
摘要:#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]; } ... 阅读全文
posted @ 2019-08-02 17:12 青衫客36 阅读(142) 评论(0) 推荐(0) 编辑
摘要:2*n方格,铺1*2骨牌。我们可以"自左向右"进行此过程。设f[i]表示用1*2骨牌铺2*i方格的不同方案总数,由于1*2骨牌既可以横着放,又可以竖着放,因此: (1)当前面2*(i-1)方格区域已经铺满时:可以竖着放一块1*2骨牌将整个区域铺满,故此时方案总数为f[i-1]; (2)当前面2*(i 阅读全文
posted @ 2019-08-02 16:30 青衫客36 阅读(459) 评论(0) 推荐(0) 编辑
摘要:#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... 阅读全文
posted @ 2019-08-02 14:42 青衫客36 阅读(205) 评论(0) 推荐(0) 编辑
摘要:本题跟超级楼梯类似, 当前一步的情况由n-1与n-2决定, 此时f()函数中传入的参数是两点之间的间隔+1(也就是转换成从点1开始到达其他点的路线数) 还需注意本题的数据类型(long long int) 输入输出的占位符为%lld 阅读全文
posted @ 2019-08-02 13:56 青衫客36 阅读(164) 评论(0) 推荐(0) 编辑
摘要:#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(... 阅读全文
posted @ 2019-08-02 12:52 青衫客36 阅读(138) 评论(0) 推荐(0) 编辑
摘要:#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... 阅读全文
posted @ 2019-08-02 12:30 青衫客36 阅读(148) 评论(0) 推荐(0) 编辑
摘要:#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("... 阅读全文
posted @ 2019-08-01 17:11 青衫客36 阅读(92) 评论(0) 推荐(0) 编辑
摘要:#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("... 阅读全文
posted @ 2019-08-01 17:04 青衫客36 阅读(296) 评论(0) 推荐(0) 编辑
摘要:注意: 输入的边长可能是小数 阅读全文
posted @ 2019-08-01 16:53 青衫客36 阅读(110) 评论(0) 推荐(0) 编辑
摘要:程序在时间限制内没运行结束,就会出Output Limit Exceeded错误程序返回的结果是一直输出某个结果,死循环输出的那种 阅读全文
posted @ 2019-08-01 16:43 青衫客36 阅读(1049) 评论(0) 推荐(0) 编辑
摘要:#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)... 阅读全文
posted @ 2019-08-01 16:32 青衫客36 阅读(118) 评论(0) 推荐(0) 编辑
摘要:计算几何中计算三角形面积 在计算几何里,我们知道,△ABC的面积就是“向量AB”和“向量AC”两个向量叉积的绝对值的一半。其正负表示三角形顶点是在右手系还是左手系。 所以得到三角形面积 特别注意: 以上得到是有向面积(有正负)! 凸多边形的三角形剖分 很自然地,我们会想到以 P1为扇面中心,连接P1 阅读全文
posted @ 2019-08-01 16:01 青衫客36 阅读(4867) 评论(0) 推荐(0) 编辑
摘要:多边形面积公式 如果逆时针给出点坐标,值为正, 如果顺时针给出点坐标,值为负。 包括凸凹多边形 实质为==第一个点与第二个点 第二个点与第三个点 一直到第n个点与第一个点的 叉乘 == 的和 阅读全文
posted @ 2019-08-01 15:50 青衫客36 阅读(191) 评论(0) 推荐(0) 编辑
摘要:#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;... 阅读全文
posted @ 2019-08-01 15:21 青衫客36 阅读(100) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示