A:容易发现这要求所有子集中元素的最高位1的位置相同,并且满足这个条件也是一定合法的。统计一下即可。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 1010
int n,cnt[];
int main()
{
freopen("subset.in","r",stdin);
freopen("subset.out","w",stdout);
while (scanf("%d",&n)>)
{
memset(cnt,,sizeof(cnt));
for (int i=;i<=n;i++)
{
int x=read();
for (int j=;~j;j--)
if (x&(<<j)) {cnt[j]++;break;}
}
for (int i=;i<;i++) cnt[]=max(cnt[],cnt[i]);
printf("%d\n",cnt[]);
}
return ;
}

  B:考虑暴力dp,令f[i]为到达第i个咖啡站所花费的最短时间,枚举上次买咖啡的地点转移。可以发现这里转移分三种情况:咖啡未冷却(事实上这一种似乎没有必要转移);咖啡已冷却而未喝完;咖啡未喝完。每种转移都是一段连续的区间,可以二分找到分界点线段树暴力查询。进一步发现每次分界点单调递增,只需要维护两个指针即可。这样就可以改为用单调队列优化了,然而感觉很容易写挂还是搞了一棵线段树,卡进0.5s感觉非常稳。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
#define N 500010
#define ll long long
#define inf 1000000000000
ll read()
{
ll x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
ll l,d[N];
double f[N],mn[N],ans,tree[N<<],c[N],e[N],u,v;
int n,a,b,t,r,L[N<<],R[N<<],Q[N];
double calc(ll x)
{
if (x<=t*a) return (double)x/a;
if (x<=t*a+r*b) return (double)(x-t*a)/b+t;
return (double)(x-r*b)/a+r;
}
void build(int k,int l,int r)
{
L[k]=l,R[k]=r;tree[k]=inf;
if (l==r) return;
int mid=l+r>>;
build(k<<,l,mid);
build(k<<|,mid+,r);
}
double query(int k,int l,int r)
{
if (l>r) return inf;
if (L[k]==l&&R[k]==r) return tree[k];
int mid=L[k]+R[k]>>;
if (r<=mid) return query(k<<,l,r);
else if (l>mid) return query(k<<|,l,r);
else return min(query(k<<,l,mid),query(k<<|,mid+,r));
}
void ins(int k,int p,double x)
{
if (L[k]==R[k]) {tree[k]=x;return;}
int mid=L[k]+R[k]>>;
if (p<=mid) ins(k<<,p,x);
else ins(k<<|,p,x);
tree[k]=min(tree[k<<],tree[k<<|]);
}
int main()
{
freopen("walk.in","r",stdin);
freopen("walk.out","w",stdout);
cin>>l>>a>>b>>t>>r;
n=read();
for (int i=;i<=n;i++) d[i]=read(),c[i]=(double)d[i]/a,e[i]=(double)d[i]/b;
mn[]=inf;ans=(double)l/a;if (n==) {printf("%.7lf",ans);return ;}
build(,,n);
int p=,q=,head=,tail=;
double u=t*(-(double)a/b),v=r*(-(double)b/a);
for (int i=;i<=n;i++)
{
f[i]=c[i];
while (d[p]<d[i]-t*a) p++;
while (d[q]<d[i]-t*a-r*b) q++;
while (head<=tail&&Q[head]<p) head++;
f[i]=min(f[i],f[Q[head]]-c[Q[head]]+c[i]);
f[i]=min(f[i],query(,q,p-)+e[i]+u);
f[i]=min(f[i],mn[q-]+c[i]+v);
mn[i]=min(mn[i-],f[i]-c[i]);
while (head<=tail&&f[i]-c[i]<=f[Q[tail]]-c[Q[tail]]) tail--;
Q[++tail]=i;
ins(,i,f[i]-e[i]);
ans=min(ans,f[i]+calc(l-d[i]));
}
printf("%.7lf",ans);
return ;
}

  C:每次相邻交换可以且最多减少一个逆序对。算出逆序对个数剩下的怎么搞都行了。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 50010
#define ll long long
int n,a[N],tree[N];
ll m,B;
int query(int k){int s=;while (k) s+=tree[k],k-=k&-k;return s;}
void ins(int k){while (k<=n) tree[k]++,k+=k&-k;}
int main()
{
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
n=read();cin>>B;
for (int i=;i<=n;i++)
{
a[i]=read();
m+=i-query(a[i])-;
ins(a[i]);
}
if (B>m) cout<<m*(m+)/;
else cout<<B*(B+)/+(m-B)*B;
return ;
}

  result:300 rank1

Contest 6的更多相关文章

  1. Programming Contest Problem Types

        Programming Contest Problem Types Hal Burch conducted an analysis over spring break of 1999 and ...

  2. hdu 4946 2014 Multi-University Training Contest 8

    Area of Mushroom Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  3. 2016 Multi-University Training Contest 2 D. Differencia

    Differencia Time Limit: 10000/10000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  4. 2016 Multi-University Training Contest 1 G. Rigid Frameworks

    Rigid Frameworks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  5. hdu-5988 Coding Contest(费用流)

    题目链接: Coding Contest Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Ot ...

  6. ZOJ 3703 Happy Programming Contest

    偏方记录背包里的物品.....每个背包的价值+0.01 Happy Programming Contest Time Limit: 2 Seconds      Memory Limit: 65536 ...

  7. 2012 Multi-University Training Contest 9 / hdu4389

    2012 Multi-University Training Contest 9 / hdu4389 打巨表,实为数位dp 还不太懂 先这样放着.. 对于打表,当然我们不能直接打,这里有技巧.我们可以 ...

  8. 2014 Multi-University Training Contest 9#11

    2014 Multi-University Training Contest 9#11 Killing MonstersTime Limit: 2000/1000 MS (Java/Others)   ...

  9. 2014 Multi-University Training Contest 9#6

    2014 Multi-University Training Contest 9#6 Fast Matrix CalculationTime Limit: 2000/1000 MS (Java/Oth ...

  10. 校际联合Contest

    每次开一个坑都像是重新被碾压的预感 最近的新闻,以前很喜欢乔任梁的<复活>...然后他就死了...感觉我再多愁善感一点的话...就要悲伤逆流成河了吧... Contest 09/24(乐滋 ...

随机推荐

  1. BZOJ054_移动玩具_KEY

    题目传送门 这道题我写IDA*写挂了,TLE+WA,只AC了两个点. 这道题标算BFS+状态压缩. code: /******************************************* ...

  2. 【Todo】找出共同好友 & Spark & Hadoop面试题

    找了这篇文章看了一下面试题<Spark 和hadoop的一些面试题(准备)> http://blog.csdn.net/qiezikuaichuan/article/details/515 ...

  3. 【BZOJ3110】【LG3332】[ZJOI2013]K大数查询

    [BZOJ3110][LG3332][ZJOI2013]K大数查询 题面 洛谷 BZOJ 题解 和普通的整体分治差不多 用线段树维护一下每个查询区间内大于每次二分的值\(mid\)的值即可 然后再按套 ...

  4. 关于解决idea 输入法不跟随问题

    网上查了很多方法  自己试验了一种方式 jdk版本采用的是 java version "1.8.0_191"Java(TM) SE Runtime Environment (bui ...

  5. PostFix使用dovecot支持POP3/IMAP收信

    PostFix只能够收发邮件,以及使用SMTP发送邮件,想要使用POP3/IMAP收信的话必须装其他软件,本文通过配置dovecot让邮件服务器支持POP3/IMAP收信.POP3/IMAP是一种收信 ...

  6. mnist手写数字识别(神经网络)

    import numpy as np from sklearn.neural_network import MLPClassifier path = 'mnist.npz' f = np.load(p ...

  7. 虚拟货币——比特币行情价格分析

    最近挖以太币的朋友们在关注以太坊行情时,一定会发现以太币的价格对比之前上涨了不少.肯定有部分朋友想了解这次上涨的原因,我们特地为此查询了一番.因为比特币相当于虚拟货币中的黄金,它的价格波动会波及到其他 ...

  8. VPS挂机赚美刀详细介绍–Alexamaster操作流程

    跟 vps 主机打交道时间长了,手里也渐渐积累了些闲置的 vps.让它们这么闲着吧,感觉有些浪费资源:用起来吧,暂时又没有好的项目.一直听说通过 vps挂机可以赚回主机成本,甚至可以盈利.正好这两天有 ...

  9. 洛谷【P1854】花店橱窗布置

    https://www.luogu.org/problemnew/show/P1854 题目描述 某花店现有编号由 1 到 F 的 F 束花, 每一束花的品种都不一样. 编号由 1 到 V 的 V 个 ...

  10. 回归Qt——写在Qt5.10发布之日

    今天偶然看到一条关于Qt5.10发布的消息,发现Qt经历了诺基亚风波之后发展得依然良好,感到很欣慰.回头看上次关注Qt技术还是2011年,那时候用Qt4.7做一个小项目,对于一个写Win32界面和MF ...