2017.10.5 QBXT 模拟赛
T1
从小到大排序,用sum记录前缀和,然后枚举1~n个数 ,如果当前的前缀和 + 1小于a[i]的话 那么 sum + 1永远不可能拼出来 直接输出sum + 1 ,否则统计前缀和。最后如果仍没找到最小的解,输出所有数的和+1
#include <algorithm>
#include <cstdio>
#define N 100005
typedef long long LL;
using namespace std;
int n,a[N]; int main()
{
scanf("%d",&n);
for(int i=;i<=n;++i) scanf("%d",&a[i]);
sort(a+,a++n);
LL sum=;
for(int i=;i<=n;++i)
{
if(a[i]>sum+)
{
printf("%lld\n",sum+);
return ;
}
else sum+=a[i];
}
printf("%lld\n",sum+);
return ;
}
T2
规律题
#include <cstdio>
#include <cmath> long long n;
int main()
{
freopen("div.in","r",stdin);
freopen("div.out","w",stdout);
scanf("%lld",&n);
long long k=sqrt(n);
if(k==n/k) printf("%lld\n",k*-);
else printf("%lld\n",k*);
fclose(stdin); fclose(stdout);
return ;
}
T3
meet in the middle
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector> using namespace std;
int tt;
int n,m;
int v[];
double p[];
double ans[];
vector<pair<int,double> > sta[];
int main()
{
freopen("diamond.in","r",stdin);
freopen("diamond.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=,x;i<=n;i++)
{
scanf("%d%d",&v[i],&x);
p[i]=x/.;
}
int an=(n/2.5)+;
int bn=n-an;
for(int st=;st<<<bn;st++)
{
double nowp=;
int cnt=,money=;
for(int i=;i<bn;i++)
{
if((st>>i)&)
{
money+=v[n-i];
nowp*=p[n-i];
}
else
{
cnt++;
nowp*=(-p[n-i]);
}
}
sta[cnt].push_back(make_pair(money,nowp));
}
for(int i=;i<=n;i++)
{
sort(sta[i].begin(),sta[i].end());
for(int j=;j<sta[i].size();j++)
sta[i][j].second+=sta[i][j-].second;
}
for(int st=;st<<<an;st++)
{
double nowp=;
int cnt=,money=;
for(int i=;i<an;i++)
{
if((st>>i)&)
{
money+=v[i+];
nowp*=p[i+];
}
else
{
cnt++;
nowp*=(-p[i+]);
}
}
for(int i=;i<=bn;i++)
{
// now d =cnt+i
int L = m-money;
vector<pair<int,double> >::iterator it = lower_bound(sta[i].begin(),sta[i].end(),make_pair(L,-.));
double tmp = sta[i].back().second;
if(it!= sta[i].begin())
{
it--;
tmp-=it->second;
}
ans[cnt+i] += tmp*nowp;
}
}
for(int i=;i<=n;i++)
printf("%.3f\n",ans[i]);
fclose(stdout);
return ;
}
2017.10.5 QBXT 模拟赛的更多相关文章
- 2017.10.7 QBXT 模拟赛
题目链接 T1 容斥原理,根据奇偶性进行加减 #include<iostream> #include<cstdio> using namespace std; typedef ...
- 2017.10.3 QBXT 模拟赛
题目链接 T1 模拟 #include <cstring> #include <cstdio> #define N 105000 int L,R; char s[N]; int ...
- 2017.10.6 QBXT 模拟赛
题目链接 T1 Sort 一下与原数组比较 ,若有两个数或者没有数发生位置交换 ,则输出YES ,否则输出NO #include <algorithm> #include <ccty ...
- 2017.10.4 QBXT 模拟赛
题目链接 T1 维护一个单调栈 #include <iostream> #include <cstdio> #define N 500000 #define rep(a,b,c ...
- 2017.10.2 QBXT 模拟赛
题目链接 T1 我们所要求得是(a*b)|x 也就是 使(a*b)的倍数小于x的个数之和 1<=x<=n 我们可以 找一个c使得 (a*b*c)<=x 由于我们所求的是一个三元有序对 ...
- 2017.10.1 QBXT 模拟赛
题目链接 T1 枚举右端点,前缀和优化.对于当前点x,答案为 sum[x][r]-sum[x][l-1]-(sum[z][r]-sum[z][l-1]) 整理为 sum[x][r]-sum[z][r] ...
- 2017 10.25 NOIP模拟赛
期望得分:100+40+100=240 实际得分:50+40+20=110 T1 start取了min没有用,w(゚Д゚)w O(≧口≦)O T3 代码3个bug :数组开小了,一个细节没注意, ...
- 2017.10.28 QB模拟赛 —— 下午
题目链接 T1 按x值排序 遇到第二种牌插入 遇到第一种牌 查询<=y 的最小值 删除他 splay multiset cys大佬说 multiset就是不去重的set, #include &l ...
- 2017.10.28 QB模拟赛 —— 上午
题目链接 T1 1e18 内的立方数有 1e6个 直接枚举可过 二分最优 考场用set 死慢.. #include <cstdio> int t; long long p; int ma ...
随机推荐
- .NET 下的 POP3 编程代码共享
前一段时间在论坛上看见有人问如何使用.net进行POP3编程,其实POP3的使用很简单,所以.net没有向SMTP那样给出相应的类来控制. 废话少说,程序员最需要的使代码. 1.打开VS.NET 20 ...
- Do not have XXX handler in current page
这种错误没有什么技术含量,也很容易解决. 一般就是wxml里面的button/form之类的,你用bindtap/bindsubmit给它绑了一个XXX函数,但是呢,你没有在相关js页面里面定义这个函 ...
- UVa 10801 Lift Hopping (Dijkstra)
题意:有一栋100层的大楼(标号为0~99),里面有n个电梯(不超过5个),以及要到达的层数(aid),然后是每个电梯走一层所需的时间, 再n行就是对应每个电梯可以到达的层数,数量不定.然后每装换一次 ...
- Linux绘图函数
gdk_draw_line () gdk_draw_rectangle () gdk_draw_arc () gdk_draw_polygon () gdk_draw_string () gdk_dr ...
- MS SQL PIVOT数据透视表
以前曾经做过练习<T-SQL PIVOT 行列转换>https://www.cnblogs.com/insus/archive/2011/03/05/1971446.html 今天把拿出来 ...
- JQ下拉加载更多
<!DOCTYPE=html> <html> <head> <script src="jquery-1.4.2.min.js" type= ...
- codeforces590E Birthday【AC自动机+Floyd+匈牙利算法】
因为没有重复串,所以把有包含关系的串连边之后是个DAG,也就是二分图,就变成求二分图的最大独立集=n-最小点覆盖=n-最大匹配 关于包含关系,建出AC自动机,然后把串放上去找子串,但是如果每次都一路找 ...
- 洛谷P3645 [APIO2015]雅加达的摩天楼(最短路+分块)
传送门 这最短路的建图怎么和网络流一样玄学…… 一个最朴素的想法是从每一个点向它能到达的所有点连边,边权为跳的次数,然后跑最短路(然而边数是$O(n^2)$除非自创复杂度比spfa和dijkstra还 ...
- C#代码生成器附百度云盘源码地址
今晚闲着没事,写了个代码生成器,在这里只做个抛砖引玉,后面可以继续扩展功能,下方附百度云盘源码地址. 使用数据库:sqlserver 编译器:vs2015 废话不多说,上界面: 程序主界面: 数据库: ...
- 两数相加LeetCode
给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和 ...