2019hdu第二场
10:签到求n!取模
#include <iostream>
#include <iterator>
#include <algorithm>
typedef long long ll;
using namespace std;
const ll mod=1e6+;
ll n;
ll res[mod+];
int main(){
res[]=%mod;
res[]=%mod;
for(int i=;i<=mod+;i++){
res[i]=(res[i-]*i)%mod;
}
while(scanf("%lld",&n)!=EOF){
if(n>=mod) printf("0\n");
else printf("%lld\n",res[n]);
}
return ;
}
11:签到,主席树维护a[]数组,然后对于每个q,去询问区间第1大,第2大,第3大,如果不能组成三角形,则询问区间第4大,依次类推,询问次数最多为O(logn),总复杂度O(qlogn*logn)
/*
主席树维护区间[l,r]
查找第1大,第2大,第3大,第4大
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 100005
#define ll long long
ll a[maxn],n,b[maxn]; int tot,m,rt[maxn];
struct Node{int lc,rc,sum;}t[maxn*];
int update(int last,int l,int r,int pos){
int now=++tot;
t[now]=t[last];t[now].sum++;
if(l==r)return now;
int mid=l+r>>;
if(pos<=mid)
t[now].lc=update(t[last].lc,l,mid,pos);
else t[now].rc=update(t[last].rc,mid+,r,pos);
return now;
}
int query(int st,int ed,int l,int r,int k){
if(l==r)return l;
int mid=l+r>>;
int sum=t[t[ed].lc].sum-t[t[st].lc].sum;
if(k<=sum)return query(t[st].lc,t[ed].lc,l,mid,k);
else return query(t[st].rc,t[ed].rc,mid+,r,k-sum);
}
int build(int l,int r){
int now=++tot;
t[now].lc=t[now].rc=t[now].sum=;
if(l==r)return now;
int mid=l+r>>;
t[now].lc=build(l,mid);
t[now].rc=build(mid+,r);
return now;
} int main(){
int q;
while(scanf("%d%d",&n,&q)==){
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
b[i]=a[i];
}
sort(b+,b++n);
m=unique(b+,b++n)-(b+);
//cout<<m<<endl;
for(int i=;i<=n;i++)
a[i]=lower_bound(b+,b++m,a[i])-b; tot=;
rt[]=build(,m);
for(int i=;i<=n;i++)
rt[i]=update(rt[i-],,m,a[i]);
int l,r;
while(q--){
scanf("%d%d",&l,&r);
if(r-l+<){puts("-1");continue;}
int len=r-l+;
ll x=b[query(rt[l-],rt[r],,m,len)],y=b[query(rt[l-],rt[r],,m,len-)],z=b[query(rt[l-],rt[r],,m,len-)];
len-=;
while(x>=y+z){
if(len==)break;
x=y,y=z;z=b[query(rt[l-],rt[r],,m,len)];
len--;
}
if(x>=y+z)puts("-1");
else cout<<x+y+z<<'\n';
} }
}
12:队友过的规律题,从[1,n]里随机选一个数丢进函数里,问最后答案的期望值
实质是一个概率dp,可以通过n^2的转移来做,当然也可以直接找规律推出线性通项公式做
这是比较好的题解(比官方题解容易懂)https://www.cnblogs.com/isakovsky/p/11247444.html
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cctype>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <vector>
#include <queue>
#include <stack>
const int MOD = ;
#define rep(i,n,m) for(int i=n;i<=m;++i)
const double eps = 1e-;
#define ll long long
using namespace std;
const int maxn = ;
const int maxm = 2e5 + ;
const int inf = << ;
typedef pair<int, int> P;
#define zero(a) fabs(a)<eps
inline int read()
{
int x = , f = ;
char ch = getchar();
while (ch < '' || ch > '')
{
if (ch == '-')
f = -;
ch = getchar();
}
while (ch >= '' && ch <= '')
{
x = * x + ch - '';
ch = getchar();
}
return x * f;
} ll quick_mod(ll x, ll n) {
ll res = ;
while (n) {
if (n & ) res = res * x % MOD;
x = x * x % MOD;
n = n >> ;
}
return res;
}
ll a[];
void init()
{
a[] = a[] = ;
a[] = ;
for (int i = ; i <= ; ++i)
a[i] = a[i - ] + (i - ) * ;
for (int i = ; i <= ; ++i)
a[i] += a[i - ];
}
int main()
{
ll n;
init();
while (~scanf("%lld", &n))
{
if (n == ) { cout << "" << endl; continue; }
ll a1 = a[n];
ll b = * n;
ll x = quick_mod(b, MOD - );
cout << a1 % MOD * x % MOD<<endl;
}
}
2019hdu第二场的更多相关文章
- 本周进步要点20161023(含李笑来第二场live笔记要点)
本周主要忙于去武汉参加iDOF2016智能数字油田会议,会上做了题为“油田SOA及云平台的系统思考与实践”的报告,为了准备这篇报告,用到了一些以前学过的知识,具体内容见“参加iDOF2016会议的收获 ...
- 2014百度之星预赛(第二场)——Best Financing
2014百度之星预赛(第二场)--Best Financing Problem Description 小A想通过合理投资银行理財产品达到收益最大化.已知小A在未来一段时间中的收入情况,描写叙述为两个 ...
- Contest1592 - 2018-2019赛季多校联合新生训练赛第二场(部分题解)
Contest1592 - 2018-2019赛季多校联合新生训练赛第二场 D 10248 修建高楼(模拟优化) H 10252 组装玩具(贪心+二分) D 传送门 题干 题目描述 C 市有一条东西走 ...
- 2018牛客暑期ACM多校训练营第二场(有坑未填)
第二场终于等来学弟 开始(被队友带飞)的开心(被虐)多校之旅 A run A题是一个递推(dp?)+前缀和 因为看数据量比较大 就直接上前缀和了 一个比较简单的递推 没有太多难点 签到题 需要注意 ...
- 2018牛客网暑假ACM多校训练赛(第二场)E tree 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round2-E.html 题目传送门 - 2018牛客多校赛第二场 E ...
- NOI.AC NOIP模拟赛 第二场 补记
NOI.AC NOIP模拟赛 第二场 补记 palindrome 题目大意: 同[CEOI2017]Palindromic Partitions string 同[TC11326]Impossible ...
- DevOps Workshop 研发运维一体化(北京第二场) 2016.04.27
北京不亏为首都,人才济济,对微软DevOps解决方案感兴趣的人太多.我们与微软公司临时决定再家一场培训. 我之前在博客中(DevOps Workshop 研发运维一体化第一场(微软亚太研发集团总部)h ...
- CTF-i春秋网鼎杯第二场misc部分writeup
CTF-i春秋网鼎杯第二场misc部分writeup 套娃 下载下来是六张图片 直接看并没有什么信息 一个一个查看属性 没有找到有用信息 到winhexv里看一下 都是标准的png图片,而且没有fla ...
- 2018 计算之道初赛第二场 阿里巴巴的手机代理商(困难)(反向可持久化Trie)
阿里巴巴的手机代理商(困难) 阿里巴巴的手机代理商正在研究 infra 输入法的新功能.他们需要分析单词频率以改进用户输入法的体验.于是需要你在系统内核里面写一个 API. API 有如下功能: 添加 ...
随机推荐
- es的日期格式
https://www.elastic.co/guide/en/elasticsearch/reference/2.3/mapping-date-format.html 在es中,默认的时间类型为da ...
- read more阅读更多,文字超过三行字符后面添加省略号
var text;$('.blog-item').each(function (i) {text = $(this).find('.blog-excerpt').html();if (text.len ...
- CSV (逗号分隔值文件格式)
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符序列,不 ...
- NOIp2018集训test-10-23
上午考了一套sb题,但是没有人AK.李巨290虐场. 下午又考了一套sb题,李巨AK虐场.%%% T1 % 中国剩余定理好像做不了啊,我一直在想如何用CRT做,然后就GG了. 然而正解是bike当初说 ...
- MFC弹出选择文件和选择文件夹代码
选择文件夹 TCHAR szSelectedDir[]; BROWSEINFO bi; ITEMIDLIST *il; bi.hwndOwner = m_hWnd; bi.pidlRoot = NUL ...
- Spring源码剖析4:懒加载的单例Bean获取过程分析
本文转自五月的仓颉 https://www.cnblogs.com/xrq730 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https ...
- unittest框架学习笔记四之report
# coding=utf-8'''created:2018/3/29 author:star project:test report'''# import time,os# from selenium ...
- Maven项目上有小红叉咋办
Maven项目上有小红叉咋办 创建maven项目之后,war工程如果目录不全的话会出现错误.这种情况就是把目录补全就可以了. 这种情况版本问题,点击那个最新版本的,会自动给加一段代码.(如果没有就自己 ...
- Dubbo入门到精通学习笔记(十五):Redis集群的安装(Redis3+CentOS)、Redis集群的高可用测试(含Jedis客户端的使用)、Redis集群的扩展测试
文章目录 Redis集群的安装(Redis3+CentOS) 参考文档 Redis 集群介绍.特性.规范等(可看提供的参考文档+视频解说) Redis 集群的安装(Redis3.0.3 + CentO ...
- caller.arguments.callee.eval
------------------------------------ 1.函数的调用方式,与this的指向问题,原型对象中的this 2.对象创建的几种方式! 3.str.replace 页面初始 ...