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第二场的更多相关文章

  1. 本周进步要点20161023(含李笑来第二场live笔记要点)

    本周主要忙于去武汉参加iDOF2016智能数字油田会议,会上做了题为“油田SOA及云平台的系统思考与实践”的报告,为了准备这篇报告,用到了一些以前学过的知识,具体内容见“参加iDOF2016会议的收获 ...

  2. 2014百度之星预赛(第二场)——Best Financing

    2014百度之星预赛(第二场)--Best Financing Problem Description 小A想通过合理投资银行理財产品达到收益最大化.已知小A在未来一段时间中的收入情况,描写叙述为两个 ...

  3. Contest1592 - 2018-2019赛季多校联合新生训练赛第二场(部分题解)

    Contest1592 - 2018-2019赛季多校联合新生训练赛第二场 D 10248 修建高楼(模拟优化) H 10252 组装玩具(贪心+二分) D 传送门 题干 题目描述 C 市有一条东西走 ...

  4. 2018牛客暑期ACM多校训练营第二场(有坑未填)

    第二场终于等来学弟 开始(被队友带飞)的开心(被虐)多校之旅 A   run A题是一个递推(dp?)+前缀和 因为看数据量比较大 就直接上前缀和了 一个比较简单的递推 没有太多难点 签到题 需要注意 ...

  5. 2018牛客网暑假ACM多校训练赛(第二场)E tree 动态规划

    原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round2-E.html 题目传送门 - 2018牛客多校赛第二场 E ...

  6. NOI.AC NOIP模拟赛 第二场 补记

    NOI.AC NOIP模拟赛 第二场 补记 palindrome 题目大意: 同[CEOI2017]Palindromic Partitions string 同[TC11326]Impossible ...

  7. DevOps Workshop 研发运维一体化(北京第二场) 2016.04.27

    北京不亏为首都,人才济济,对微软DevOps解决方案感兴趣的人太多.我们与微软公司临时决定再家一场培训. 我之前在博客中(DevOps Workshop 研发运维一体化第一场(微软亚太研发集团总部)h ...

  8. CTF-i春秋网鼎杯第二场misc部分writeup

    CTF-i春秋网鼎杯第二场misc部分writeup 套娃 下载下来是六张图片 直接看并没有什么信息 一个一个查看属性 没有找到有用信息 到winhexv里看一下 都是标准的png图片,而且没有fla ...

  9. 2018 计算之道初赛第二场 阿里巴巴的手机代理商(困难)(反向可持久化Trie)

    阿里巴巴的手机代理商(困难) 阿里巴巴的手机代理商正在研究 infra 输入法的新功能.他们需要分析单词频率以改进用户输入法的体验.于是需要你在系统内核里面写一个 API. API 有如下功能: 添加 ...

随机推荐

  1. 【LeetCode】拓扑排序

    [207] Course Schedule 排课问题,n门课排课,有的课程必须在另外一些课程之前上,问能不能排出来顺序. 题解:裸的拓扑排序.参考代码见算法竞赛入门指南这本书. class Solut ...

  2. appium1.4+华为8.0执行自动化脚本,报启动session失败,原因是unicode_ime_apk\Uni codeIME-debug.apk在手机上已存在,再次安装失败,导致启动session失败,解决办法:换高版本的appium

    最开始做Android自动化测试时,通过执行脚本发现报,已安装UnicodeIME-debug.apk,再次安装失败,当时觉得这个apk对我来说没用,就把D:\Program Files (x86)\ ...

  3. 线程池——Executors

    一 Executor框架 为了更好地控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效的进行线程控制.它们都在java.util.concurrent包中,是JDK并发包的核心.其 ...

  4. Github pages博客搭建与域名绑定

    Github Page github page是由用户编写的托管在github上的静态网页,为了搭建一个个人博客,我们可以租用一个云服务器然后部署我们的博客项目,常见的比如wordpress,像wp这 ...

  5. [HCTF 2018]WarmUp

    靶场首页 打开靶场后,查看源码即可看到<!--source.php--> 打开source.php页面 代码如下 <?php     highlight_file(__FILE__) ...

  6. 分布式项目web.xml配置文件的表头

    <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://w ...

  7. Python读取文件时出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position xx: 解决方案

    Python在读取文件时 with open('article.txt') as f: # 打开新的文本 text_new = f.read() # 读取文本数据 出现错误: UnicodeDecod ...

  8. P1493 分梨子

    P1493 分梨子 题目描述 Finley家的院子里有棵梨树,最近收获了许多梨子.于是,Finley决定挑出一些梨子,分给幼稚园的宝宝们.可是梨子大小味道都不太一样,一定要尽量挑选那些差不多的梨子分给 ...

  9. 二:unittest框架配合selenium之xpath定位

    刚开始学习selenium自动化测试时,犯了一个不该犯的错误,偷懒,使用火狐浏览器中的扩展FIREBUG,FIREPATH来辅助定位. 虽然用的定位方法大多数是使用XPATH方法,但是是工具定位出来的 ...

  10. 21. Jmeter对数据库进行压力测试

    测试工作中有时候会对数据库进行压力测试,jmeter实现这个需求较为简单,在这里简单介绍下.可以参考我之前写的 15. Jmeter-配置元件二 步骤: 1.选中测试计划,添加mysql-connec ...