D5上
好慌啊 0分??
T1
感觉是组合数,不知道对不对。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cmath>
#include<ctime>
using namespace std;
const int P=1e9+;
long long n,k,ans=;
int main()
{
freopen("cube.in","r",stdin);
freopen("cube.out","w",stdout);
scanf("%lld%lld",&n,&k);
int x;
for(int i=;i<=n;i++) scanf("%d",&x);
for(int i=k+;i<=n;i++)
ans=(ans*i)%P;
for(int i=;i<=(n-k);i++)
ans=(ans*i)%P;
cout<<ans<<'\n';
return ;
}
first
完了组合数用错了,应该用逆元的。
思路:
其实就是说,在n个位置中,找出K个与原来不同的(1或0两种)。
组合数公式n! / k!(n-k)! 因为数比较大,如果先取模再除 是不对的。
用乘法逆元,/x %p等价于 *x^P-2 .
也可以分解质因数,不知道哪根筋抽了,这都没想到。
T2
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cmath>
using namespace std;
const int N=1e5+;
int n,m,q;
struct node{
int x,y;
int z;
}a[N],ask[N];
int f[N],tot;
int find(int x)
{
while(x!=f[x])
x=f[x]=f[f[x]];
return x;
}
bool cmp(node u,node v)
{ return u.z>v.z;}
bool fan(node u,node v)
{ return u.y<v.y;}
int main()
{
freopen("warehouse.in","r",stdin);
freopen("warehouse.out","w",stdout);
scanf("%d%d%d",&n,&m,&q);
for(int i=;i<=m;i++)
scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
for(int i=;i<=q;i++)
scanf("%d",&ask[i].z),ask[i].y=i;
sort(a+,a++n,cmp);sort(ask+,ask++q,cmp);
for(int i=;i<=n;i++) f[i]=i; tot=n;int ed=,i=,f1,f2;
for(i=;i<=q;i++)
{
while(a[ed+].z>=ask[i].z)
{
ed++;
f1=find(a[ed].x);f2=find(a[ed].y);
if(f1!=f2)
{
f[f1]=f2;tot--;
}
}
ask[i].x=tot;
}
sort(ask+,ask+q+,fan);
for(int i=;i<=q;i++)
printf("%d\n",ask[i].x);
return ;
}
first
应该写对了啊,0分。。。
和昨天的题差不多,建一个最大生成树,在合并的过程中更新答案。
T3
不会去重,甚至计数都不会。
这道题的确不简单,因为一个字符串可能会得到多次,
那我们就就想办法让这个字符串只得到一次,怎么操作那?
维护两个数组a[i][j](表示长度为i的前缀,后面再加j字符就会重复的字符串数量)
c[i][j](表示以j为开头,长度为i的字符串数量)
(因为我们只需要考虑,字符串长度,和是否重复)
最后把长度和为L的前缀和后缀字符根据乘法原理组合起来就是答案了。
但是!这样做有漏洞!!
原因是对于本来就是一个单词一部分的字符如coo,它能由co 前缀和 o后缀 组成,但我们却没有判定出co这个前缀。
但是coo这个串,整个串都是合法的。
D5上的更多相关文章
- es6学习笔记一数组(上)
最近公司没什么事情,我们老大让我看看es6,小颖就练习了下数组的各个方法,今天先给大家分享一部分.嘻嘻,希望对大家有所帮助. every方法: 概述: every() 方法测试数组的所有元素是否 ...
- 一个高级的J2E工程师需要面对MySQL要有那些基本功夫呢<上>
1. MySQL的架构介绍1.1 MySQL简介: MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不 ...
- Excel2013 基本用法(上)
自动填充 对于数字填充 Excel对于处理数据非常方便,比如我们需要输入一个班级的学号,就可以只输入2个学号然后快捷填充就可以完成一个班的学号输入(如下图). 快捷填充,就是将鼠标移动到选中的单元格边 ...
- Arduino下LCD1602综合探究(上)——1602的两种驱动方式,如何使LCD的控制编程变得更简单
一.前言: LCD ( Liquid Crystal Display 的简称)液晶显示器,已经逐渐替代CRT成为主流的显示设备之一,因此也成为了单片机发烧友绕不过的话题之一:而LCD1602更是很多单 ...
- Selenium2学习-039-WebUI自动化实战实例-文件上传下载
通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a ...
- Replication的犄角旮旯(六)-- 一个DDL引发的血案(上)(如何近似估算DDL操作进度)
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- PHP上传实现进度条
Web上传文件的三种解决方案
- 基于FPGA的电压表与串口通信(上)
实验原理 该实验主要为利用TLC549采集模拟信号,然后将模拟信号的数字量通过串口发送到PC上上位机进行显示,使用到的TLC549驱动模块在进阶实验已经使用到了,串口模块在基础实验也已经使用到了,本实 ...
- 源代码管理工具(上)-SVN基本使用
------------------------------------------------------SVN简介和搭建 ------------------------------------- ...
随机推荐
- mac的idea不能编辑问题
在安装的时候,因为在选择插件的时候,把IDEAVim这个玩意儿选上了.所以,编辑模式就跟命令行里面的Vim一样.输入时,需要先输入i, 进入insert模式下,然后才可以编辑.彻底解决办法就是进入Pr ...
- NSPoint 位置
前言 结构体,这个结构体用来表示事物的一个坐标点. typedef CGPoint NSPoint; struct CGPoint { CGFloat x; CGFloat y; }; typedef ...
- 1003. Check If Word Is Valid After Substitutions
We are given that the string "abc" is valid. From any valid string V, we may split V into ...
- 51nod1040最大公约数之和(欧拉函数)
题面 传送门 题解 这种题目就是推倒推倒 \[\sum_{i=1}^n \gcd(i,n)=\sum_{i|n}i\sum_{j=1}^n[\gcd(j,n)=i]\] \[\sum_{i=1}^n ...
- HTTP基本认证和JWT鉴权
一.HTTP基本认证 Basic Authentication——当浏览器访问使用基本认证的网站的时候, 浏览器会提示你输入用户名和密码. http auth的过程: · 客户端发送http请求 · ...
- Oracle使用PARTITION BY 实现数据稠化报表
所谓的数据稠化,就是补全缺失的数据.因为在数据库表中,存储的数据经常是稀疏的(sparse data),也就是不完整的.比如记录一个员工每个月的销售额,用这么一个销售表来记录:SalesRecord( ...
- 如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?
如何实现 MySQL 的读写分离? 其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去. MySQL 主从复制原理的是 ...
- deque时间复杂度和vector,list比较
deque supports const time insert and erase operations at the beginning or the end, insert or erase i ...
- POJ1054 The Troublesome Frog
题目来源:http://poj.org/problem?id=1054 题目大意: 有一种青蛙在晚上经过一片稻田,在庄稼上跳跃,会把庄稼压弯.这让农民很苦恼.我们希望通过分析青蛙跳跃的路径,找出对稻田 ...
- P4824 [USACO15FEB]Censoring (Silver) 审查(银)
传送门 一个串的匹配肯定考虑KMP 那就暴力KMP 记录一下到每个字符时匹配的位置 找到一个符合的串就标记然后暴力回跳 感觉好像太暴力了... #include<iostream> #in ...