立方体

/*
输入数据中的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的更多相关文章

  1. 清北刷题冲刺 11-03 a.m

    纸牌 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...

  2. 2017-10-4 清北刷题冲刺班a.m

    P101zhx a [问题描述]你是能看到第一题的 friends 呢.——hjaHja 拥有一套时光穿梭技术,能把字符串以超越光速的速度传播,但是唯一的问题是可能会 GG.在传输的过程中,可能有四种 ...

  3. 2017-10-2 清北刷题冲刺班a.m

    一道图论神题 (god) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图,只 ...

  4. 2017-10-2 清北刷题冲刺班p.m

    最大值 (max) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一本书,上面有很多有趣的OI问题.今天LYK看到了这么一道题目: 这里有一个长度为n ...

  5. 清北刷题冲刺 11-02 a.m

    卖书 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...

  6. 清北刷题冲刺 11-01 p.m

    轮换 #include<iostream> #include<cstdio> #include<cstring> #define maxn 1010 using n ...

  7. 清北刷题冲刺 10-31 a.m

    集合 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; ], ...

  8. 清北刷题冲刺 10-30 a.m

    星空 #include<iostream> #include<cstdio> using namespace std; int n,m; int main(){ freopen ...

  9. 清北刷题冲刺 10-29 p.m

    洗澡 /* 这个题不能单纯判断左括号和右括号的多少,而应该从左到右扫一遍,看应该如何配对 */ #include<iostream> #include<cstdio> #inc ...

  10. 清北刷题冲刺 10-28 p.m

    水题(贪心) (water) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK出了道水题. 这个水题是这样的:有两副牌,每副牌都有n张. 对于第一副牌的每 ...

随机推荐

  1. 学习c++的优秀博客(转)

    http://zhedahht.blog.163.com/  本博客讨论程序员面试题,并主要集中在C/C++.数据结构算法和算法上.http://saturnman.blog.163.com/ sat ...

  2. appium界面元素介绍

    一.主窗口 主页面顶部从左到右依次是: AndroidSettings:android相关的设置 GeneralSettings:全局设置,设置appium相关的内容 DeveloperSetting ...

  3. Java IO 简记

    1.File 类: l  java.io.File类:文件和目录路径名的抽象表示形式,与平台无关 l  File 能新建.删除.重命名文件和目录,但 File 不能访问文件内容本身.如果需要访问文件内 ...

  4. Android DOM解析XML方法及优化

    在Android应用开发中,我们常常要在应用启动后从服务器下载一些配置文件,这些配置文件包含一些项目中可能用到的资源,这些文件很多情况下是XML文件,这时就要将XML下载到文件中保存,之后再解析XML ...

  5. unity破解步骤

    1.选择unity的安装目录 C:\Programe Files (x86)\Unity\Editor 2.点击patch 3.使用random生成序列号 4.使用Cre Lic生成授权文件

  6. SPOJ8093Sevenk Love Oimaster(广义后缀自动机)

    Oimaster and sevenk love each other.     But recently,sevenk heard that a girl named ChuYuXun was da ...

  7. 每天一个linux命令(13):more命令

    版权声明更新:2017-05-17博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的mv命令. 2. ...

  8. bzoj 4031: 小Z的房间 矩阵树定理

    bzoj 4031: 小Z的房间 矩阵树定理 题目: 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子.在一开始的时 ...

  9. 桥接以及Mercury MW54R中继

    家里连个路由器,一个是比较先进的TP-Link的TL-WR842N(100M),另外一个是比较古老的水星(Mercury) MW54R(54M),我们知道新的路由器都有WDS功能,方便作为副路由器(中 ...

  10. HDOJ5044(最近公共祖先)

    #include<cstdio> #include<cstring> using namespace std; ; struct Edge{ int v,id,next; }e ...