博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
暑假第十七测
阅读量:4596 次
发布时间:2019-06-09

本文共 4801 字,大约阅读时间需要 16 分钟。

题解:

第一题

#include
using namespace std;#define ll long longconst int M = 1e5 + 10;ll a[M], b[M], ans;priority_queue
, greater
> Q;int main(){ freopen("buy.in","r",stdin); freopen("buy.out","w",stdout); int n; scanf("%d", &n); for(int i = 1; i <= n; i++)scanf("%I64d", &a[i]); for(int i = 1; i <= n; i++)scanf("%I64d", &b[i]); for(int i = 1; i <= n; i++){ Q.push(a[i]); if(!Q.empty()){ int u = Q.top(); if(u < b[i]) { ans += b[i] - u; Q.pop(); Q.push(b[i]); } } } printf("%I64d\n",ans);}
View Code

 

第二题:

 

#include
using namespace std;#define ll long long;const int M = 1e5 + 10;int n, a[M], sum[M];struct Node{ int mx, tag; Node *ls, * rs; void up(){ mx = max(ls->mx, rs->mx); } void down(){ if(tag){ ls->tag += tag; rs->tag += tag; ls->mx += tag; rs->mx += tag; } tag = 0; }}pool[M << 2], *tail = pool, *root;Node * build(int lf = 1, int rg = n){ Node * nd = ++tail; if(lf == rg); else { int mid = (lf + rg) >> 1; nd->ls = build(lf, mid); nd->rs = build(mid + 1, rg); } return nd;}#define Ls nd->ls, lf, mid#define Rs nd->rs, mid+1, rgvoid insert(int pos, int val, Node * nd = root, int lf = 1, int rg = n){ if(lf == rg)nd->mx = val; else { int mid = (lf + rg) >> 1; if(pos <= mid)insert(pos, val, Ls); else insert(pos, val, Rs); nd->up(); }}void modify(int L, int R, int val, Node * nd = root, int lf = 1, int rg = n){ if(L <= lf && rg <= R){ nd->mx += val; nd->tag += val; } else { nd->down(); int mid = (lf + rg) >> 1; if(L <= mid)modify(L, R, val, Ls); if(R > mid) modify(L, R, val, Rs); nd->up(); }}int query(int L, int R, Node * nd = root, int lf = 1, int rg = n){ if(L <= lf && rg <= R)return nd->mx; else { nd->down(); int mid = (lf + rg) >> 1; int ans = -2e9; if(L <= mid)ans = query(L, R, Ls); if(R > mid) ans = max(ans, query(L, R, Rs)); return ans; } }int main(){ freopen("invest.in","r",stdin); freopen("invest.out","w",stdout); int s, e; int ans = -2e9; scanf("%d%d%d", &n, &s, &e); root = build(); for(int i = 1; i <= e; i++){ scanf("%d", a + i); sum[i] = sum[i - 1] + a[i]; insert(i, sum[i]); } int llf = 1, lf = s, rg = e, now = 1; ans = max(ans, query(lf, rg)); //cout<
<
View Code
#include
int a[100002],k[100002];int max(int x,int y){ return x>y?x:y; }int qin(){ char ch; int in=0; bool flag=0; while(ch!='-'&&!(ch>='0'&&ch<='9')) ch=getchar(); if(ch=='-') { flag=1; ch=getchar(); } do { in=in*10+ch-'0'; ch=getchar(); } while(ch>='0'&&ch<='9'); if(flag) in*=-1; return in;}int co(){ freopen("invest.in","r",stdin); freopen("invest.out","w",stdout); int n,i,t,head,tail,s,ans=-10000000,j; scanf("%d%d%d",&n,&s,&t); for(i=1;i<=n;i++) a[i]=a[i-1]+qin(); head=tail=1; for(i=s;i<=n;i++) { while(head
t) head++; while(head
View Code

 

 

 第三题:

#include
using namespace std;const int M = 1e6 + 10;#define ll long longconst ll mod = 19930726;char c[M], s[ M << 1 ];ll cnt[M]; int len, pal[M << 1];ll ksm(ll a, ll b){ ll ret = 1; for( ; b; b >>= 1, a = a * a % mod){ if(b & 1) ret = ret * a % mod; } return ret;}void init(){ len = strlen(c); s[0] = '$'; for(int i = 0; i < len; i++){ s[i * 2 + 1] = '#'; s[i * 2 + 2] = c[i]; } s[len * 2 + 1] ='#'; s[len * 2 + 2] ='@'; int L = len * 2 + 1; int id = 1, Maxid = 0; for(int i = 1; i <= L; i++){ if(Maxid >= i)pal[i] = min(Maxid - i + 1, pal[2 * id - i]); else pal[i] = 1; while(s[i - pal[i]] == s[i + pal[i]])pal[i]++; if(i + pal[i] - 1 > Maxid) id = i, Maxid = i + pal[i] - 1; if((i&1) == 0)cnt[(pal[i] * 2 - 1) / 2]++; } }int main(){ freopen("rehearse.in","r",stdin); freopen("rehearse.out","w",stdout); int n; ll k, ans = 1, sum = 0; cin>>n>>k; scanf("%s", c); init(); int limit = n & 1 ? n : n - 1; for(int i = limit; i > 0; i -= 2){ if(i != 1)cnt[i - 2] += cnt[i]; if(sum + cnt[i] <= k)ans = (ans * ksm(i, cnt[i])) % mod; else ans = (ans * ksm(i, k - sum)) % mod; sum += cnt[i]; if(sum >= k)break; } if(sum >= k)cout<
<
View Code

今天复制freopen, 两个stdin, 惨痛教训

 

转载于:https://www.cnblogs.com/EdSheeran/p/9483161.html

你可能感兴趣的文章
7.装饰器的一些需求
查看>>
ddd
查看>>
Excel 2013中设置密码保护表格数据不被修改的方法
查看>>
Flash中的隔离沙箱
查看>>
即点即用:在 21 世纪交付 Office
查看>>
AJAX表单提交以及数据接收
查看>>
用tensorflow学习贝叶斯个性化排序(BPR)
查看>>
ADO.NET的记忆碎片(四)
查看>>
浏览器的渲染过程
查看>>
程序员面试准备
查看>>
Swift5.1 语言指南(十四) 下标
查看>>
2017-2018-1 20155330 《信息安全系统设计基础》加分项目--实现mypwd
查看>>
团队简介
查看>>
Oracle总结二
查看>>
Flask—03-bootstrap与表单
查看>>
五人分鱼问题
查看>>
Objective-C 锁
查看>>
Django-urls(路由系统)
查看>>
jsp c:forEach用法
查看>>
Derek解读Bytom源码-P2P网络 地址簿
查看>>