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 ...
随机推荐
- 35.Docker安装Mysql挂载Host Volume
连个文件系统有块区域Area,我们要做的是把两个Area做文件映射 jesse腾讯云上有个linux的环境,版本比较老了 简书的地址: https://www.jianshu.com/p/b3bf64 ...
- MVC4 razor与aspx的区别以及用法
Model要重,Controller要轻,View要够笨,mvc不希望在开发view时还需要判断过多的与view无关的技术,所以要尽可能的保持view逻辑简单.(以下中有出现代码的地方用了什么尖括号百 ...
- socket网络编程实践要点
1.创建udp的socket句柄 // 当host_port为0时,则表示让操作系统自动分配 bool createUdpSocket(string host_ip,unsigned short ho ...
- 钉钉/支付宝小程序和微信小程序的区别及转换方案
最近接到一个工作任务,是把钉钉小程序转微信小程序... 对,居然还有这种操作,之前只听过微信小程序转支付宝小程序的,钉钉转微信是什么鬼
- SCUT - 336 - 酋雷姆 - 最小生成树
每个世界可以和别的世界连通,也可以直接联通虚拟的已经毁灭的世界,这样变成一个最小生成树问题. 但是好像哪里不对? 有人用dp过掉的? 不太清楚怎么搞的. 其实就是最小生成树-- #include< ...
- Search in a Binary Search Tree
Given the root node of a binary search tree (BST) and a value. You need to find the node in the BST ...
- hdu 6155 - Subsequence Count
话说这题比赛时候过的好少,连题都没读TOT 先考虑dp求01串的不同子序列的个数. dp[i][j]表示用前i个字符组成的以j为结尾的01串个数. 如果第i个字符为0,则dp[i][0] = dp[i ...
- 十、正则表达式和JSON
一.什么是正则表达式 正则表达式是一个特殊字符序列,一个字符串是否与我们所设定的这样的字符序列相匹配. 应用:快速检索文本.实现一些替换文本的操作 1.检查一串数字是否是电话号码 2.检查一个字符串是 ...
- C 语言实例 - 判断字母
C 语言实例 - 判断字母 C 语言实例 C 语言实例 用户输入一个字符,判断该字符是否为一个字母. 实例 #include <stdio.h> int main() { char c; ...
- 黑马旅游网配置 pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...