洛谷 NOIP提高组模拟赛 Day1
## $T1$
一道结论题,设原来A队能力最大的是x,那么A队的选择方案就是$2^{x-1}$,B队的选择方案就是$(2^{n-x}-1)$种,因为不能不选。其中$1\leq x\leq n$,那么根据乘法原理,最后的答案就是 $\sum\limits^{n-1}_{x=1}2^{x-1}*(2^{n-x}-1)$,化简可得 $ans=n*2^{n-1}-(2^{n}-1)$,然后一个快速幂就行了。
#include<iostream>
#include<cstdio>
#include<cstdlib>
#define int long long using namespace std;
const int mod = 1e9+;
typedef long long LL; int n; int fast_pow(int x,int y){
int ret=;
for(;y;y>>=){
if(y&) ret=(LL)ret*x%mod;
x=(LL)x*x%mod;
}
return ret;
} signed main(){
scanf("%lld",&n);
int ans=(n*fast_pow(,n-)%mod-(fast_pow(,n)-)%mod+mod)%mod;
cout<<ans<<endl;
return ;
}
## $T2$
一道比较套路的题吧,首先肯定是先按每个物品的消失时间排序,然后就可以跑背包了,$f[i][j]$表示到了第$i$个物品,时间为$j$的最大收益,时间复杂度$O(n*MAX\_D)$。输出方案考试时候想了挺久。。。其实就是倒着走回去。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm> using namespace std;
const int MAXN = ; inline int rd(){
int x=,f=;char ch=getchar();
while(!isdigit(ch)) {f=ch=='-'?:;ch=getchar();}
while(isdigit(ch)) {x=(x<<)+(x<<)+ch-'';ch=getchar();}
return f?x:-x;
} int n,ans,lx,ly,all[MAXN],cnt;
int f[MAXN][]; struct Node{
int t,w,d,id;
}data[MAXN]; inline bool cmp(Node A,Node B){
return A.d<B.d;
} int main(){
// freopen("T2.out","w",stdout);
n=rd();
for(int i=;i<=n;i++)
data[i].t=rd(),data[i].d=rd(),data[i].w=rd(),data[i].id=i;
sort(data+,data++n,cmp);
for(int i=;i<=n;i++)
for(int j=;j<data[i].d;j++){
f[i][j]=f[i-][j];
if(j>=data[i].t)
f[i][j]=max(f[i][j],f[i-][j-data[i].t]+data[i].w);
}
for(int i=;i<=data[n].d;i++)
if(f[n][i]>ans) {
ans=f[n][i];
ly=i;
}
lx=n;cout<<ans<<endl;
for(int i=n;i;i--)
for(int j=ly;j>=;j--)
if(f[i][j]==ans) {
if(f[i-][j]!=f[i][j]) ans-=data[i].w,all[++cnt]=data[i].id;
ly=j;break;
}
printf("%d\n",cnt);
for(int i=cnt;i;i--) printf("%d ",all[i]);
return ;
}
## $T3$
考试的时候没有做出来,后来经过$G \color{red} {hostCai}$神犇的指点,才知道用网络流做,开一个超级源点$S$和一个超级汇点$T$,然后将每个点拆成左部点和右部点,$S$向左部点连流量为$a[i]$的点,表示每个点至多能向其他点给出$a[i]$的能量,左部点向能到达的右部点连流量为$inf$的边(注意要连自己),右部点向汇点连流量为$b[i]$的边,表示最多收到$b[i]$的能量,然后跑一个最大流,看所有右部点到汇点的边是否满流,不满说明无解。再看每个左部点到所有右部点的反边的流量即为答案。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#define czq namespace using czq std;
const int MAXN = ;
const int MAXM = ;
const int inf = 0x3f3f3f3f; inline int rd(){
int x=,f=;char ch=getchar();
while(!isdigit(ch)) {f=ch=='-'?:;ch=getchar();}
while(isdigit(ch)) {x=(x<<)+(x<<)+ch-'';ch=getchar();}
return f?x:-x;
} int n,m,head[MAXN],to[MAXM],val[MAXM],nxt[MAXM];
int cnt=,a[MAXN],b[MAXN],S,T,cur[MAXN],d[MAXN],ans[MAXN][MAXN];
queue<int> Q; inline void add(int bg,int ed,int w){
to[++cnt]=ed,nxt[cnt]=head[bg],val[cnt]=w,head[bg]=cnt;
to[++cnt]=bg,nxt[cnt]=head[ed],val[cnt]=,head[ed]=cnt;
} bool bfs(){
memset(d,,sizeof(d));
while(Q.size()) Q.pop();
Q.push(S);d[S]=;
while(Q.size()){
int x=Q.front();Q.pop();
for(register int i=head[x];i;i=nxt[i]){
int u=to[i];
if(!d[u] && val[i]){
d[u]=d[x]+;
if(u==T) return true;
Q.push(u);
}
}
}
return false;
} int dinic(int x,int flow){
if(x==T) return flow;
int res=flow,k;
for(register int &i=cur[x];i && res;i=nxt[i]){
int u=to[i];
if(val[i] && d[u]==d[x]+){
k=dinic(u,min(res,val[i]));
if(!k) d[u]=;
val[i]-=k;res-=k;val[i^]+=k;
// cout<<k<<endl;
}
}
return flow-res;
} int main(){
n=rd(),m=rd();int x,y;S=*n+,T=*n+;
for(int i=;i<=n;i++) a[i]=rd(),add(S,i,a[i]),add(i,i+n,inf);
for(int i=;i<=n;i++) b[i]=rd(),add(i+n,T,b[i]);
for(int i=;i<=m;i++){
x=rd(),y=rd();
add(x,y+n,inf);
add(y,x+n,inf);
}
while(bfs()) {memcpy(cur,head,sizeof(head));dinic(S,inf);}
for(register int i=head[T];i;i=nxt[i])
if(val[i^]) {puts("NO");return ;}
puts("YES");
for(register int i=;i<=n;i++)
for(register int j=head[i];j;j=nxt[j]){
int u=to[j];
ans[i][u-n]+=val[j^];
}
for(register int i=;i<=n;i++){
for(register int j=;j<=n;j++)
printf("%d ",ans[i][j]);
putchar('\n');
}
return ;
}
洛谷 NOIP提高组模拟赛 Day1的更多相关文章
- l洛谷 NOIP提高组模拟赛 Day2
传送门 ## T1 区间修改+单点查询.差分树状数组. #include<iostream> #include<cstdio> #include<cstring> ...
- 【洛谷】NOIP提高组模拟赛Day1【组合数学】【贪心+背包】【网络流判断是否满流以及流量方案】
U41568 Agent1 题目背景 2018年11月17日,中国香港将会迎来一场XM大战,是世界各地的ENLIGHTENED与RESISTANCE开战的地点,某地 的ENLIGHTENED总部也想派 ...
- HGOI2010816 (NOIP 提高组模拟赛 day1)
Day1 210pts(含T1莫名的-10pts和T3莫名的-30pts) 100+70+40=210 rank 29 这道题第一眼看是字符串匹配问题什么KMP啊,又想KMP不会做啊,那就RK Has ...
- [LUOGU] NOIP提高组模拟赛Day1
题外话:以Ingress为题材出的比赛好评,绿军好评 T1 考虑枚举第\(i\)个人作为左边必选的一个人,那左边剩余\(i-1\)个人,选法就是\(2^{i-1}\),也就是可以任意选或不选,右侧剩余 ...
- 【洛谷】NOIP提高组模拟赛Day2【动态开节点/树状数组】【双头链表模拟】
U41571 Agent2 题目背景 炎炎夏日还没有过去,Agent们没有一个想出去外面搞事情的.每当ENLIGHTENED总部组织活动时,人人都说有空,结果到了活动日,却一个接着一个咕咕咕了.只有不 ...
- 计蒜客 2017 NOIP 提高组模拟赛(四)Day1 T2 小X的密室
https://nanti.jisuanke.com/t/17323 小 X 正困在一个密室里,他希望尽快逃出密室. 密室中有 N 个房间,初始时,小 X 在 1号房间,而出口在 N号房间. 密室的每 ...
- 10-18 noip提高组模拟赛(codecomb)T1倍增[未填]
T1只想到了找环,> <倍增的思想没有学过,所以看题解看得雨里雾里的(最近真的打算学一下! 题目出的挺好的,觉得noip极有可能出现T1T2T3,所以在此mark 刚开始T1以为是模拟,还 ...
- 10-18 noip提高组模拟赛(codecomb)T2贪心
T2:找min:一直找最小的那个,直到a[i]-x+1小于0,就找次小的,以此类推: 求max,也是一样的,一直到最大的那个,直到次大的比之前最大的大,就找次大的: 这个模拟,可以用上priority ...
- HGOI20180815 (NOIP 提高组模拟赛 day2)
Day 2 rank 11 100+35+30=165 本题是一道数论题,求ax+by=c的正整数对(x,y) x>=0并且y>=0 先说下gcd: 求a,b公约数gcd(a,b) 如gc ...
随机推荐
- IOS中input光标跑偏问题的解决方法
ios端兼容input光标高度处理 在最近的项目中遇到一个问题,input输入框光标,在安卓手机上显示没有问题,但是在苹果手机上 当点击输入的时候,光标的高度和父盒子的高度一样.造成的原因就是给父盒子 ...
- HTTPS客户端的java实现
目录 https客户端 指定ssl算法套 浏览器可以作为客户端向服务器发送Http请求,当需要访问后台或第三方Restful接口时,也可以用java实现客户端直接发get/post请求,获取数据. h ...
- 利用zk客户端删除solr shard
进入zk客户端 ./bin/zkCli.sh -server ip:2181 显示所有的内容: ls / 删除数据: rmr /filename path
- ES6 学习 -- let const
看过很多大佬的ES6笔记,总结一下学习后的收获,给自己当作一个笔记用用: ES3.ES5定义变量有两种方法:var 和 function ES6定义变量有var.function.let.const等 ...
- PHP算法之转换成小写字母
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串. 示例 1: 输入: "Hello"输出: &q ...
- div+css对网页进行布局
div+css对网页进行布局 首先在页面整体上进行div标签划分内容区域,然后再用css进行定位,最后再对相应的区域添加内容. 1.用div将页面划分 拿到网站页面图后,首先将分析页面分为哪几块,然后 ...
- ETL工具-Kattle:初识kattle
ETL是EXTRACT(抽取).TRANSFORM(转换).LOAD(加载)的简称,实现数据从多个异构数据源加载到数据库或其他目标地址,是数据仓库建设和维护中的重要一环也是工作量较大的一块.当前知道的 ...
- day13 python-001 简介及循环、判断、复制等
Python之路,Day1 = Python基础1 本节内容 1.Python历史简介以及安装.环境变量的配置: 2.Pycharm的简单设置: 3.变量的使用及定义: 4.获取键盘输入及打印: 5. ...
- csp-s模拟99题解
题面:https://www.cnblogs.com/Juve/articles/11791219.html 上来先看T1,发现和之前做过的treap一样,是线段树维护单调栈,然后打了一个小时,然后它 ...
- 0914CSP-S模拟测试赛后总结
9-16 16:03-upd:T3数据出锅,老师重测了,于是更了榜单. 名次并没有变化,但是和大佬们的差距变大了. 还是自己实力不行啊.最起码T3不是特别难想吧. 继续努力吧. 粘个榜:%%%二营长. ...