清北刷题冲刺 11-01 a.m
立方体
/*
输入数据中的p的位置是没有用的,而题目本质上是求C(n,k)
*/
#include<iostream>
#include<cstdio>
#define mod 1000000007
#define maxn 1000001
using namespace std;
int n,k,x;
long long fac[maxn]={,},inv[maxn]={,},f[maxn]={,};
long long C(long long a,long long b){
return fac[a]*inv[b]%mod*inv[a-b]%mod;
}
void prepare(){
for(int i=;i<maxn;i++){
fac[i]=fac[i-]*i%mod;
f[i]=(mod-mod/i)*f[mod%i]%mod;
inv[i]=inv[i-]*f[i]%mod;
}
}
int main(){
freopen("cube.in","r",stdin);freopen("cube.out","w",stdout);
scanf("%d%d",&n,&k);
prepare();
for(int i=;i<=n;i++)scanf("%d",&x);
cout<<C(n,k);
return ;
}
100分 组合数
仓库
/*
跑一遍最大生成树,把边权存下来,然后排个序
每次询问只需要找小于w的辺权的个数加一即可
查找的时候用二分
*/
#include<iostream>
#include<cstdio>
#include<algorithm>
#define maxn 100010
using namespace std;
int n,m,q,a[maxn],cnt,fa[maxn];
struct Node{
int x,y,v;
}E[maxn];
int query(int x){
int l=,r=n-,res=;
while(l<=r){
int mid=(l+r)>>;
if(a[mid]<x)res=mid,l=mid+;
else r=mid-;
}
return res;
}
bool cmp(Node x,Node y){return x.v>y.v;}
int find(int x){
if(x==fa[x])return x;
return fa[x]=find(fa[x]);
}
int main(){
// freopen("Cola.txt","r",stdin);
freopen("warehouse.in","r",stdin);freopen("warehouse.out","w",stdout);
scanf("%d%d%d",&n,&m,&q);
for(int i=;i<=n;i++)fa[i]=i;
int x,y;
for(int i=;i<=m;i++)scanf("%d%d%d",&E[i].x,&E[i].y,&E[i].v);
sort(E+,E+m+,cmp);
for(int i=;i<=m;i++){
int f1=find(E[i].x),f2=find(E[i].y);
if(f1==f2)continue;
fa[f1]=f2;
a[++cnt]=E[i].v;
if(cnt==n-)break;
}
sort(a+,a+cnt+);
while(q--){
scanf("%d",&x);
int pos=query(x);
pos+=;
printf("%d\n",pos);
}
return ;
}
100分 生成树
单词
#include<iostream>
#include<cstdio>
#include<cstring>
#include<map>
#define maxn 1010
using namespace std;
int n,q,len[maxn],L;
string s[maxn];
map<string,bool>vis;
int main(){
freopen("word.in","r",stdin);freopen("word.out","w",stdout);
// freopen("Cola.txt","r",stdin);
scanf("%d%d",&n,&q);
for(int i=;i<=n;i++){
cin>>s[i];
len[i]=s[i].length();
}
while(q--){
scanf("%d",&L);
vis.clear();
long long ans=;
for(int i=;i<=n;i++){
if(len[i]==L){
ans++;
vis[s[i]]=;
}
}
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
if(len[i]+len[j]<L)continue;
string snow="";
for(int l1=max(,L-len[j]);l1<=min(len[i],L-);l1++){//枚举用第一个字符串的多长
snow="";int l2=L-l1;
snow+=s[i].substr(,l1);
snow+=s[j].substr(len[j]-l2,l2);
if(!vis[snow]){
vis[snow]=;
ans++;
}
}
}
}
printf("%d\n",ans);
}
}
0分 暴力stl
预计得分100++
实际得分100++
今天的T1T2特别简单,T3一开始以为是Trie树,但是后来不太会做,就直接写的暴力,复杂度很高,map常熟又特别大,所以估分为0
今天早上迟到了,心情比较焦躁,但是T1特别简单,所以没有耽误很多时间
小结
清北刷题冲刺 11-01 a.m的更多相关文章
- 清北刷题冲刺 11-03 a.m
纸牌 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...
- 2017-10-4 清北刷题冲刺班a.m
P101zhx a [问题描述]你是能看到第一题的 friends 呢.——hjaHja 拥有一套时光穿梭技术,能把字符串以超越光速的速度传播,但是唯一的问题是可能会 GG.在传输的过程中,可能有四种 ...
- 2017-10-2 清北刷题冲刺班a.m
一道图论神题 (god) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图,只 ...
- 2017-10-2 清北刷题冲刺班p.m
最大值 (max) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK有一本书,上面有很多有趣的OI问题.今天LYK看到了这么一道题目: 这里有一个长度为n ...
- 清北刷题冲刺 11-02 a.m
卖书 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...
- 清北刷题冲刺 11-01 p.m
轮换 #include<iostream> #include<cstdio> #include<cstring> #define maxn 1010 using n ...
- 清北刷题冲刺 10-31 a.m
集合 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; ], ...
- 清北刷题冲刺 10-30 a.m
星空 #include<iostream> #include<cstdio> using namespace std; int n,m; int main(){ freopen ...
- 清北刷题冲刺 10-29 p.m
洗澡 /* 这个题不能单纯判断左括号和右括号的多少,而应该从左到右扫一遍,看应该如何配对 */ #include<iostream> #include<cstdio> #inc ...
- 清北刷题冲刺 10-28 p.m
水题(贪心) (water) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK出了道水题. 这个水题是这样的:有两副牌,每副牌都有n张. 对于第一副牌的每 ...
随机推荐
- Selenium-几种等待方式
强制等待 一直使用的time.sleep(5),可以放在任意地方,不好的地方,不太准确确定时间 隐形等待 driver.implicitly_wait(5) 设置了一个最长等待时间,如果在规定时间内网 ...
- codeforces 776C Molly's Chemicals(连续子序列和为k的次方的个数)
题目链接 题意:给出一个有n个数的序列,还有一个k,问在这个序列中有多少个子序列使得sum[l, r] = k^0,1,2,3…… 思路:sum[l, r] = k ^ t, 前缀和sum[r] = ...
- CodeForces - 1017 C. The Phone Number(数学)
Mrs. Smith is trying to contact her husband, John Smith, but she forgot the secret phone number! The ...
- C++ STL, next_permutation用法。
next_permutation 将按字母表顺序生成给定序列的下一个较大的序列,直到整个序列为 #include"iostream" #include"algorithm ...
- 1147. Heaps (30)
In computer science, a heap is a specialized tree-based data structure that satisfies the heap prope ...
- iOS中的日期和时间
转载于http://www.jianshu.com/p/ee279c175cf8 一.时间和日期计算 我们在应用开发中,时常需要和时间打交道,比如获取当前时间,获取两个时间点相隔的时间等等,在iOS开 ...
- Eclipse或MyEclipse中给第三方jar包添加源码步骤
0.目的 向web项目中添加mybatis源码. 1.项目结构如下 将mybatis的jar包添加到工程中 2.解压下载的mybatis压缩包(下载地址 https://github.com/myba ...
- BZOJ3039:玉蟾宫
浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?id ...
- 洛谷 4149 [IOI2011]Race——点分治
题目:https://www.luogu.org/problemnew/show/P4149 第一道点分治! 点分治大约是每次找重心,以重心为根做一遍树形dp:然后对于该根的每个孩子,递归下去.递归之 ...
- CF 914 G Sum the Fibonacci —— 子集卷积,FWT
题目:http://codeforces.com/contest/914/problem/G 其实就是把各种都用子集卷积和FWT卷起来算即可: 注意乘 Fibonacci 数组的位置: 子集卷积时不能 ...