上星期打的...题有点水,好多人都AK了

  T1排个序贪心就好了

#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
const int maxn=,inf=1e9;
struct poi{int e,s;}a[maxn];
int n,m,s,k,x,y,cnt;
int cp[maxn];
ll ans;
void read(int &k)
{
int f=;k=;char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(c<=''&&c>='')k=k*+c-'',c=getchar();
k*=f;
}
inline bool cmp(poi a,poi b){return a.e==b.e?a.s>b.s:a.e<b.e;}
inline bool cmp2(poi a,poi b){return a.s>b.s;}
int main()
{
freopen("express.in","r",stdin);
freopen("express.out","w",stdout);
read(n);read(m);read(s);read(k);
for(int i=;i<=m;i++)
{
read(x);read(y);
if(y<=)continue;
a[++cnt].e=x;a[cnt].s=y-;
}
sort(a+,a++cnt,cmp);
for(int i=;i<=cnt;i++)if(a[i].e!=a[i-].e)cp[a[i].e]=i;
for(int i=;i<=n;i++)
{
if(!cp[i])return puts("-23333333"),;
int kk=k;
for(int j=cp[i];j<=cnt&&a[j].e==i;j++)
if(kk>)
{
if(!s)return puts("-23333333"),;
s--;kk-=a[j].s;ans+=a[j].s;a[j].s=;
}
if(kk>)return puts("-23333333"),;
}
if(s)
{
sort(a+,a++cnt,cmp2);
for(int i=;i<=s;i++)
ans+=a[i].s;
}
printf("%lld\n",ans);
return ;
}

  T2我写的方法就太鶸了,所以只说某个很妙的做法(%%%腾腾太强辣!)

  用一个指针扫,扫到某个括号就跳到对应的括号然后反向,遇到字符输出,模拟一下就知道是非常正确的

#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
const int maxn=,inf=1e9;
char s[maxn];
int n,top;
int st[maxn],op[maxn];
void read(int &k)
{
int f=;k=;char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(c<=''&&c>='')k=k*+c-'',c=getchar();
k*=f;
}
int main()
{
freopen("unknown.in","r",stdin);
freopen("unknown.out","w",stdout);
scanf("%s",s+);n=strlen(s+);
for(int i=;i<=n;i++)
{
if(s[i]=='(')st[++top]=i;
if(s[i]==')')op[i]=st[top],op[st[top--]]=i;
}
for(int i=,st=;i<=n;i+=st)
if(s[i]=='('||s[i]==')')i=op[i],st=-st;
else printf("%c",s[i]);
return ;
}

  T3状压,枚举子集的子集是3^n的,于是可以过

#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
const int maxn=;
int n,m,K,x,y;
int f[<<maxn];
bool v[maxn][maxn],mp[<<maxn];
void read(int &k)
{
int f=;k=;char c=getchar();
while(c<''||c>'')c=='-'&&(f=-),c=getchar();
while(c<=''&&c>='')k=k*+c-'',c=getchar();
k*=f;
}
int main()
{
freopen("prison.in","r",stdin);
freopen("prison.out","w",stdout);
read(n);read(m);read(K);
for(int i=;i<=m;i++)read(x),read(y),v[x][y]=v[y][x]=;
int state=(<<n)-;
for(int i=;i<=state;i++)
{
int cnt=;
for(int j=;j<=n;j++)
if(i&(<<(j-)))
for(int k=;k<j;k++)
if(i&(<<(k-)))
cnt+=v[j][k];
if(cnt<=K)mp[i]=;
}
memset(f,,sizeof(f));f[]=;
for(int i=;i<=state;i++)
{
int S=i^state;
for(int j=S;j;j=(j-)&S)
if(mp[j])f[i|j]=min(f[i|j],f[i]+);
}
printf("%d\n",f[state]);
return ;
}

NOIP2017金秋冲刺训练营杯联赛模拟大奖赛第一轮Day2题解的更多相关文章

  1. NOIP2017金秋冲刺训练营杯联赛模拟大奖赛第二轮Day2题解

    肝了两题... T1一眼题,分解质因数,找出2的个数和5的个数取min输出 #include<iostream> #include<cstring> #include<c ...

  2. WC2019 全国模拟赛第一场 T1 题解

    由于只会T1,没法写游记,只好来写题解了... 题目链接 题目大意 给你一个数列,每次可以任取两个不相交的区间,取一次的贡献是这两个区间里所有数的最小值,求所有取法的贡献和,对 \(10^9+7\) ...

  3. 【前行】◇第3站◇ 国庆训练营·OI制模拟赛

    [第3站] 国庆训练营·OI制模拟赛Ⅰ 怀着冲刺提高组400的愿望来到这个very small but very interesting 的训练营QwQ 在北大dalao的带领下开始了第一场OI模拟赛 ...

  4. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  5. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  6. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  7. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

  8. Java 第十一届 蓝桥杯 省模拟赛 小明的城堡

    小明用积木搭了一个城堡. 为了方便,小明在搭的时候用的是一样大小的正方体积本,搭在了一个 n 行 m 列的方格图上,每个积木正好占据方格图的一个小方格. 当然,小明的城堡并不是平面的,而是立体的.小明 ...

  9. Java 第十一届 蓝桥杯 省模拟赛 梅花桩

    小明每天都要练功,练功中的重要一项是梅花桩. 小明练功的梅花桩排列成 n 行 m 列,相邻两行的距离为 1,相邻两列的距离也为 1. 小明站在第 1 行第 1 列上,他要走到第 n 行第 m 列上.小 ...

随机推荐

  1. APP性能测试工具-GT(随身调)

    GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment).利用GT,仅凭一部手机,无需连接电脑,您即可对AP ...

  2. Objective-C 封装 继承 多态

    封装 #import <Foundation/Foundation.h> @interface Person : NSObject { //@public int _age; } - (v ...

  3. 【上传-下载】-jmeter工具

    上 传 ================================================================================================ ...

  4. 安迪的第一个字典 (Andy's First Dictionary,UVa10815)

    题目描述: #include<iostream> #include<string> #include<set> #include<sstream> us ...

  5. 记一次Log4j2日志无法输出的 心酸史

    问题描述:部分日志无法输出到日志文件中. 项目中的代码: @Resource private ConfigInfo configInfo; private static final Logger lo ...

  6. Laxcus大数据管理系统2.0(6)- 第四章 数据计算

    第四章 数据计算 Laxcus所有数据计算工作都是通过网络实施.相较于集中计算,在网络间进行的数据计算更适合处理那些数据量大.复杂的.耗时长的计算任务.能够实施网络计算的前提是数据可以被分割,就是把一 ...

  7. 【Paper】Deep & Cross Network for Ad Click Predictions

    目录 背景 相关工作 主要贡献 核心思想 Embedding和Stacking层 交叉网络(Cross Network) 深度网络(Deep Network) 组合层(Combination Laye ...

  8. 【算法分析】如何理解快慢指针?判断linked list中是否有环、找到环的起始节点位置。以Leetcode 141. Linked List Cycle, 142. Linked List Cycle II 为例Python实现

    引入 快慢指针经常用于链表(linked list)中环(Cycle)相关的问题.LeetCode中对应题目分别是: 141. Linked List Cycle 判断linked list中是否有环 ...

  9. Mybatis generator自动生成mybatis配置和类信息

    自动生成代码方式两种: 1.命令形式生成代码,详细讲解每一个配置参数. 2.Eclipse利用插件形式生成代码. 安装插件方式: eclipse插件安装地址:http://mybatis.google ...

  10. Appium基础环境搭建(windows)---基于python

    1  JDK安装 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装注意:安装 ...