题外话:以Ingress为题材出的比赛好评,绿军好评


T1

考虑枚举第\(i\)个人作为左边必选的一个人,那左边剩余\(i-1\)个人,选法就是\(2^{i-1}\),也就是可以任意选或不选,右侧剩余\(n-i\)个人,选法就是\(\sum\limits_{j=1}^{n-i}C_{n-i}^j\),容易发现就是\(2^{n-i}-1\)种选法,于是第i个人的贡献就是\(2^{i-1}\times(2^{n-i}-1)\),化简式子即可得到答案。

#include<iostream>
#include<cstdio> using namespace std; typedef long long ll; const ll MOD = 1e9+7; ll qpow(ll x,ll y){
ll ret=1;
while(y){
if(y&1)(ret*=x)%=MOD;
y>>=1ll;(x*=x)%=MOD;
}
return ret;
} ll n; int main(){
cin>>n;
n--;
ll ans=(qpow(2ll,n)*(n-1ll))%MOD+1;
cout<<ans;
return 0;
}

T2

发现\(T[i]\)就是物品体积,\(C[i]\)就是物品价值,背包大小就是\(D[i]\)

按\(D[i]\)升序枚举每个元素,做背包即可

统计答案?逆序枚举状态即可

#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cctype>
#include<vector> using namespace std; inline int rd(){
int ret=0,f=1;char c;
while(c=getchar(),!isdigit(c))f=c=='-'?-1:1;
while(isdigit(c))ret=ret*10+c-'0',c=getchar();
return ret*f;
} const int MAXN = 2005; int n;
struct Node{
int t,d,c,id;
bool operator<(const Node &rhs)const{
return d<rhs.d;
}
}a[MAXN]; int f[MAXN];
bool vis[MAXN][MAXN]; vector<int> vec[MAXN]; int ans=0; int sta[MAXN],top; int main(){
n=rd();
for(int i=1;i<=n;i++){
a[i].t = rd();
a[i].d = rd();
a[i].c = rd();
a[i].id = i;
}
sort(a+1,a+1+n);
for(int i=1;i<=n;i++){
for(int j=a[i].d;j>a[i].t;j--){
if(f[j]<f[j-a[i].t]+a[i].c){
f[j]=f[j-a[i].t]+a[i].c;
vis[i][j]=1;
}
}
}
int ansid=0;
for(int i=0;i<=a[n].d;i++){
if(f[i]>f[ans]) ans=i;
}
cout<<f[ans]<<endl;
for(int i=n;i>=1;i--){
if(vis[i][ans]){
sta[++top]=a[i].id;
ans-=a[i].t;
}
}
cout<<top<<endl;
while(top) cout<<sta[top--]<<" ";
return 0;
}

T3

类似一个流量平衡的问题

本着NOIP不考网络流的思想,先写了高斯消元,发现自由元极多,很复杂,就弃坑了

开始想网络流,拆点套路题,S向左侧点连\(A[i]\)的边,右侧点向T连\(B[i]\)的边,点的流量可以流给自己,也可以给别人,分别建向自己的边和向相连的点的边即可

判断有解就看T的入边是否均满流,统计答案就记录点之间的边的流量

#include<iostream>
#include<cstring>
#include<cctype>
#include<cstdio>
#include<queue> using namespace std; const int MAXN=100005;
const int INF=1<<30; int n,m,s,t;
int mxflow; inline int rd(){
int ret=0,f=1;char c;
while(c=getchar(),!isdigit(c))f=c=='-'?-1:1;
while(isdigit(c))ret=ret*10+c-'0',c=getchar();
return ret*f;
} struct Edge{
int next,to,w;
}e[MAXN*10];
int ecnt=1,head[MAXN],cur[MAXN];
inline void adds(int x,int y,int w){
e[++ecnt].next = head[x];
e[ecnt].to = y;
e[ecnt].w = w;
head[x] = ecnt;
}
inline void add(int x,int y,int w){
adds(x,y,w);adds(y,x,0);
}
int dis[MAXN];
queue<int> Q;
bool bfs(){
memset(dis,0,sizeof(dis));
Q.push(s);dis[s]=1;
while(!Q.empty()){
int top=Q.front();Q.pop();
for(int i=head[top];i;i=e[i].next){
int v=e[i].to;
if(dis[v]||!e[i].w) continue;
Q.push(v);dis[v]=dis[top]+1;
}
}
return dis[t];
} int dfs(int x,int val){
if(x==t) return val;
int used=0,tmp;
for(int i=cur[x];i;i=e[i].next){
int v=e[i].to;
if(dis[v]!=dis[x]+1) continue;//
tmp=dfs(v,min(val-used,e[i].w));
used+=tmp;
e[i].w-=tmp;
e[i^1].w+=tmp;
if(e[i].w) cur[x]=i;
if(val==used) return val;
}
if(!used) dis[x]=0;
return used;
} void dinic(){
while(bfs()){
memcpy(cur,head,sizeof(head));
mxflow+=dfs(s,INF);
}
} int A[MAXN],B[MAXN];
int ans[256][256];
int main(){
//magic spj :)
n=rd();m=rd();
s=n*2+1,t=s+1;
int x,y,w;
for(int i=1;i<=n;i++)A[i]=rd();
for(int i=1;i<=n;i++)B[i]=rd();
for(int i=1;i<=n;i++){
add(s,i,A[i]);
add(i+n,t,B[i]);
add(i,i+n,INF);
}
for(int i=1;i<=m;i++){
int x,y;
x=rd();y=rd();
add(x,y+n,INF);
add(y,x+n,INF);
}
dinic();
for(int i=n+1;i<=n+n;i++){
for(int j=head[i];j;j=e[j].next){
int v=e[j].to;
if(v!=t) continue;
if(e[j].w) return puts("NO"),0;
}
}
puts("YES");
for(int i=1;i<=n;i++){
for(int j=head[i];j;j=e[j].next){
int v=e[j].to;
if(v==s) continue;
ans[i][v-n]+=e[j^1].w;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
printf("%d",ans[i][j]);
if(j!=n)putchar(' ');
}
if(i!=n)putchar('\n');
}
return 0;
}

[LUOGU] NOIP提高组模拟赛Day1的更多相关文章

  1. HGOI2010816 (NOIP 提高组模拟赛 day1)

    Day1 210pts(含T1莫名的-10pts和T3莫名的-30pts) 100+70+40=210 rank 29 这道题第一眼看是字符串匹配问题什么KMP啊,又想KMP不会做啊,那就RK Has ...

  2. 【洛谷】NOIP提高组模拟赛Day1【组合数学】【贪心+背包】【网络流判断是否满流以及流量方案】

    U41568 Agent1 题目背景 2018年11月17日,中国香港将会迎来一场XM大战,是世界各地的ENLIGHTENED与RESISTANCE开战的地点,某地 的ENLIGHTENED总部也想派 ...

  3. 洛谷 NOIP提高组模拟赛 Day1

    传送门 ## $T1$ 一道结论题,设原来A队能力最大的是x,那么A队的选择方案就是$2^{x-1}$,B队的选择方案就是$(2^{n-x}-1)$种,因为不能不选.其中$1\leq x\leq n$ ...

  4. 计蒜客 2017 NOIP 提高组模拟赛(四)Day1 T2 小X的密室

    https://nanti.jisuanke.com/t/17323 小 X 正困在一个密室里,他希望尽快逃出密室. 密室中有 N 个房间,初始时,小 X 在 1号房间,而出口在 N号房间. 密室的每 ...

  5. 10-18 noip提高组模拟赛(codecomb)T1倍增[未填]

    T1只想到了找环,> <倍增的思想没有学过,所以看题解看得雨里雾里的(最近真的打算学一下! 题目出的挺好的,觉得noip极有可能出现T1T2T3,所以在此mark 刚开始T1以为是模拟,还 ...

  6. 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 ...

  7. 10-18 noip提高组模拟赛(codecomb)T2贪心

    T2:找min:一直找最小的那个,直到a[i]-x+1小于0,就找次小的,以此类推: 求max,也是一样的,一直到最大的那个,直到次大的比之前最大的大,就找次大的: 这个模拟,可以用上priority ...

  8. 【洛谷】NOIP提高组模拟赛Day2【动态开节点/树状数组】【双头链表模拟】

    U41571 Agent2 题目背景 炎炎夏日还没有过去,Agent们没有一个想出去外面搞事情的.每当ENLIGHTENED总部组织活动时,人人都说有空,结果到了活动日,却一个接着一个咕咕咕了.只有不 ...

  9. noip提高组模拟赛(QBXT)T2

    T2count题解 [ 问题描述]: 小 A 是一名热衷于优化各种算法的 OIER,有一天他给了你一个随机生成的 1~n 的排列, 并定 义区间[l,r]的价值为: \[ \huge C_{l,r}= ...

随机推荐

  1. java基础第五篇封装与面向对象

    a.方法: public static void main(String[] args) { } 一般定义标准: 形参:一般把 不确定的量或者变化的量定义在形参位置//圆的的半径,长方形的长和宽,传递 ...

  2. hp惠普工作站 安装ESXI 从U盘启动黑屏问题

    [背景] 公司新买了一套hp z238 workstation需要安装esxi,我按照以前的方法制作好U盘后插入从U盘引导,显示屏一直黑屏,这个问题困扰了我一天....在网上找了好久无果 第二天终于在 ...

  3. RobotFramework学习笔记-Web自动化

    一.窗口关键字使用 1.当前浏览器弹出新的窗口 使用Select Window和Close Window处理弹出窗口.实际使用中Select Window不一定会一次选中,通常会结合Wait Unti ...

  4. 洛谷P2939 [USACO09FEB]改造路Revamping Trails

    题意翻译 约翰一共有\(N\))个牧场.由\(M\)条布满尘埃的小径连接.小径可 以双向通行.每天早上约翰从牧场\(1\)出发到牧场\(N\)去给奶牛检查身体. 通过每条小径都需要消耗一定的时间.约翰 ...

  5. Win7系统控制面板“设备和打印机”打不开解决办法

    Win7系统控制面板“设备和打印机”打不开解决办法, 打开时显示界面如下: 可能原因: 1.设备和打印机对应的驱动故障引起无法打开的问题 2.服务未开启 3.系统文件损坏 解决方法: 1.更新驱动.可 ...

  6. Mac用brew安装MySQL

    1.先安装brew 网址:https://brew.sh/ 复制命令:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent ...

  7. selenium基础操作

    selenium 1.打开和关闭网页 #!/usr/bin/env python # -*- coding:utf-8 -*- from selenium import webdriver drive ...

  8. luogu P4145 上帝造题的七分钟2 / 花神游历各国 维护区间和&&区间开根号

    因为开根号能使数字减小得非常快 所以开不了几次(6次?)很大的数就会变成1..... 所以我们可以维护区间最大值,若最大值>1,则继续递归子树,暴力修改叶节点,否则直接return (好像也可以 ...

  9. proxy_pass http://127.0.0.1:5000; 502 bad getway

    (13: Permission denied) while connecting to upstream:[nginx] I am working with configuring django pr ...

  10. 常用的http网页错误代码表---------495引发的一个简单到爆,但基于国内环境只能呵呵呵的血案

    敲代码敲出了个网页错误代码 495. 然后,正常的跑去百度,看了一堆还是没有完整的网页错误代码,应该说国内的环境的网页错误代码表只有官方的那几个,那么只能FQ了. 去到谷歌,一查全是俄语,乐了,明白是 ...