清北刷题冲刺 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张. 对于第一副牌的每 ...
随机推荐
- double 与0比较时有个精度问题,有时需精确到小数点后面几位,例如与>0.0001,而不能与>0比较
double 与0比较时有个精度问题,有时需精确到小数点后面几位,例如与>0.0001,而不能与>0比较 例如杭电1408 盐水的故事 ac #include<iostream> ...
- NserviceBus过期处理
NserviceBus不过期,修改注册表 HKEY_CURRENT_USER\Software\NServiceBus\3.3下的项TrailDate到2099-08-02
- python map函数 reduce函数
Python中map()函数浅析 函数式编程: 更好的描述问题 map函数 怎么理解当传入多个参数list时,map如何运作: abc函数第一次传入的数据时 (11,44,77),然后(22,5 ...
- 数据库连接池(connection pool)
1.JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: – 在主程序(如servlet.beans)中建立数据库连接. – 进行sql ...
- JDBC获得数据库连接及使用
1.Connection Java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口.这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现 在程序中不需要直接去访问实现了 ...
- bzoj 3727: Final Zadanie 思维题
题目: Description 吉丽YY了一道神题,题面是这样的: "一棵n个点的树,每条边长度为1,第i个结点居住着a[i]个人.假设在i结点举行会议,所有人都从原住址沿着最短路径来到i结 ...
- rman命令详解(三)
1. Report 命令用户判断数据库的当前可恢复状态和提供数据库备份的特定信息1.1 指定最近没有备份的数据文件查询3天内没有备份过的表空间,可以用如下命令:RMAN> report need ...
- css 更换浏览器 默认图标
cursor:url("./images/test.cur"),auto; 只在chrome测试过...
- GPRS模块用TCP实现MQTT协议(基于SIM900A)
mqtt部分: int strlen(char *str) { int len = 0; while (*str != '\0') { len++; str++; } return len; } // ...
- Select\Poll\Epoll异步IO与事件驱动
事件驱动与异步IO 事件驱动编程是一种编程规范,这里程序的执行流由外部事件来规定.它的特点是包含一个事件循环,但外部事件发生时使用回调机制来触发响应的处理.另外两种常见的编程规范是(单线程)同步以及多 ...