麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

2.4

2019-11-14 10:39:19
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這一次的專題是遞歸、貪心、分治之類的,題目比較簡(jiǎn)單,rank較之前有所進(jìn)步,但是rank 11還是不夠的 大概總結(jié)一下:每一道題目大概的思路都清楚,但是具體細(xì)節(jié)沒有處理好,暴力分也沒有得全,可能是時(shí)間比較緊的原因 放上考試的改錯(cuò)代碼

考試目錄

考試目錄加工生產(chǎn)調(diào)度新漢諾塔穿越七色虹區(qū)間

加工生產(chǎn)調(diào)度

一道貪心,考試56分 按照a、b兩種時(shí)間的最小值排序,從小到大枚,若min[i] == a[i],則將第i個(gè)數(shù)從頭開始放入;若min[i] == b[i],則將第i個(gè)數(shù)從尾開始放入; 需要注意a[i]==b[i]的情況,只能放一次(WA了好久……)

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#define L 1000 + 10using namespace std;struct node{ long long a, b, min;} t[L], head[L];long long n;long long ans = 0, l;inline bool comp(node x, node y) { return x.min < y.min;}int main(){ freopen("新漢諾塔

一道遞歸模擬題,考試9分 對(duì)于n個(gè)圈子從大到小的調(diào)用函數(shù)move(a,to),表示把第a個(gè)圈放至第to個(gè)桿子上,因?yàn)槭菑拇蟮叫〉恼{(diào)用,所以每一個(gè)圈子調(diào)用后的位置就會(huì)確定,不用擔(dān)心之后調(diào)用圈子會(huì)影響到它 move函數(shù)中,先將當(dāng)前圈子保持不動(dòng),把除開當(dāng)前圈子以外的其他所有比之小的圈子移動(dòng)到aim和now之外的桿子上去,即move(1…a - 1, 6 - to - now[a])

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n, a, x, now[100], aim[100], ans;inline void move(int a, int to) { if (now[a] == to) return ; ans++; for (int i = a - 1; i >= 1; --i) move(i, 6 - to - now[a]); printf("move %d from %c to %c/n", a, now[a] - 1 + 'A', to - 1 + 'A'); now[a] = to;}int main(){ freopen("hanoi.in", "r", stdin); freopen("hanoi.out", "w", stdout); scanf("%d", &n); for (int i = 1; i <= 3; ++i) { scanf("%d", &a); for (int j = 1; j <= a; ++j) scanf("%d", &x), now[x] = i; } for (int i = 1; i <= 3; ++i) { scanf("%d", &a); for (int j = 1; j <= a; ++j) scanf("%d", &x), aim[x] = i; } for (int i = n; i >= 1; --i) move(i, aim[i]); printf("%d/n", ans); return 0;}

穿越七色虹

二分查找+勾股,考試0分 對(duì)于答案范圍二分,然后check mid; 對(duì)于每一個(gè)mid,考慮加上該mid后每一個(gè)彩虹的左右兩個(gè)極端范圍,然后按照左端點(diǎn)排序(注意應(yīng)該在此排序),最后考慮是否[0,x0]均在彩虹的范圍內(nèi) 其中對(duì)于高度h彩虹的范圍用勾股求值

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;struct node1{ double o, R;} t[10];struct node2{ double l, r;} x[10];double x0, h;double ans = 0;inline bool com(node2 a, node2 b) { return a.l < b.l;}inline bool check(double mid) { for (int i = 1; i <= 7; ++i) { if (t[i].R + mid >= h) { double h0 = sqrt((t[i].R + mid) * (t[i].R + mid) - h * h); x[i].l = t[i].o - h0, x[i].r = t[i].o + h0; } } sort(x + 1, x + 8, com); double ll = x[1].l, rr = x[1].r; for (int i = 2; i <= 7; ++i) { if (x[i].l <= rr) { if (x[i].l < ll) ll = x[i].l; if (x[i].r > rr) rr = x[i].r; } } if (ll <= 0 && rr >= x0) return 1; else return 0;}int main(){ freopen("rainbow.in", "r", stdin); freopen("rainbow.out", "w", stdout); scanf("%lf %lf", &h, &x0); for (int i = 1; i <= 7; ++i) scanf("%lf %lf", &t[i].o, &t[i].R); double l = 0.0, r = x0; while (r - l >= 0.001) { ans = (l + r)/2.0; if (check(ans)) r = ans; else l = ans; } printf("%.2lf/n", ans); return 0;}

區(qū)間

線段樹+決策性優(yōu)化,考試時(shí)打得暴力25分 按照每一各區(qū)間的長(zhǎng)度有小到大排序,然后根據(jù)左右兩端點(diǎn)用線段樹維護(hù)

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <cstring>#define L 1000009#define MAXN 2147483647#define ls (x << 1)#define rs (x << 1 | 1)using namespace std;struct node{ int l, r, len;} a[L];int n, m, cnt, b[L << 1], sum[L << 2], j, ans = MAXN, lazy[L << 2];inline bool comp(node a, node b) { return a.len < b.len;}inline int build(int l, int r, int x) { if (l == r) return l; int mid = (l + r) >> 1; if (x <= b[mid]) build(l, mid, x); else build(mid + 1, r, x);}inline void down(int x, int v) { sum[x] += v, lazy[x] += v;}inline void change(int x, int l, int r, int a, int b, int v) { if (l == a && r == b) {down(x, v); return ;} if (lazy[x]) down(ls, lazy[x]), down(rs, lazy[x]), lazy[x] = 0; int mid = (l + r) >> 1; if (b <= mid) change(ls, l, mid, a, b, v); else if (a > mid) change(rs, mid + 1, r, a, b, v); else change(ls, l, mid, a, mid, v), change(rs, mid + 1, r, mid + 1, b, v); sum[x] = max(sum[ls], sum[rs]);}inline void solve() { for (int i = 1; i <= n; ++i) { while (sum[1] < m) { if (j == n) return ; j++; change(1, 1, cnt, a[j].l, a[j].r, 1); } ans = min(ans, a[j].len - a[i].len); change(1, 1, cnt, a[i].l, a[i].r, -1); }}int main(){ freopen("interval.in", "r", stdin); freopen("interval.out", "w", stdout); scanf("%d %d", &n, &m); for (int i = 1; i <= n; ++i) { scanf("%d %d", &a[i].l, &a[i].r); b[++cnt] = a[i].l, b[++cnt] = a[i].r; a[i].len = a[i].r - a[i].l; } sort(a + 1, a + 1 + n, comp); sort(b + 1, b + 1 + cnt); for (int i = 1; i <= n; ++i) a[i].l = build(1, cnt, a[i].l), a[i].r = build(1, cnt, a[i].r); solve(); if (ans == MAXN) ans = -1; printf("%d/n", ans); return 0;}
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: av在线播放地址 | av免费在线观看不卡 | 99精品无人区乱码在线观看 | 国产精品剧情一区二区三区 | 成人午夜在线观看视频 | 在线观看中文字幕av | 九九精品视频免费 | 国产午夜网 | 欧美黄色大片免费观看 | 91九色蝌蚪国产 | 亚洲综合精品 | 免费观看高清视频网站 | 少妇的肉体的满足毛片 | 日韩午夜一区二区三区 | 高清国产在线 | 欧美一区二区黄色 | 国产自在线 | 欧美三级欧美成人高清www | 日韩欧美精品电影 | 久久久免费电影 | 九九久久视频 | 欧美日韩一区三区 | 成人不卡 | videos高潮| 中国a毛片 | www.91tv| 在线播放亚洲视频 | 黄色免费电影网址 | 日日噜噜噜噜久久久精品毛片 | 成人性生活视频在线播放 | 91短视频在线免费观看 | 国产精品热 | 国产羞羞视频 | 草莓福利视频在线观看 | 成人福利免费在线观看 | 最新av免费网址 | 欧美aⅴ在线观看 | 午夜精品久久久久久久96蜜桃 | 深夜小视频在线观看 | 91网站在线观看视频 | 久久精品国产久精国产 |