Task1

小 W 得到了一堆石子,要放在 N 条水平线与 M 条竖直线构成的网格的交点上。
因为小 M 最喜欢矩形了, 小 W 希望知道用 K 个石子最多能找到多少四边平行于坐标轴的
长方形,它的四个角上都恰好放着一枚石子。

对于 100%的数据:N<=30000,保证任意两点不重合,K<=N*M

简单题,枚举即可

 #include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
ll n,m,k,ans,now,a,b,c,p,q;
int main(){
freopen("rectangle.in","r",stdin);
freopen("rectangle.out","w",stdout);
cin>>n>>m>>k;
for(int i=;i<=n;i++){
a=i;b=k/i;c=k%i;now=p=q=;
if(b>m) continue;
now=(a*(a-)/)*(b*(b-)/);
if(a<n){
if(c>b) continue;
p=now+c*(c-)/*a;
}
if(b<m){
if(c>a) continue;
q=now+c*(c-)/*b;
}
ans=max(ans,max(p,q));
}
cout<<ans;
return ;
}

Task 2

小 W 发现了一个神奇的数列: 这就是著名的 Fibonacci
Sequence = =!。
众所周知,小 M 的数学超级超级好,于是给小 W 出了一道题:
给小 W 两个数 X,Y,其中 X ≤ Y≤ 2^31−1。
小 W 任务就是求出 Fibonacci 数列第 X~Y 项的和除以 10000 的余数。
然而小 W 是数学战五渣,于是只能把这个任务交给机智的你啦。

对于 100%的数据:T<=1000,Y<=2^31-1

简单题,矩阵快速幂裸题

 #include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#define il inline
using namespace std;
const int mod=;
int base[][],ans[][],tmp[][],s,t,T;
il void mul(int a[][],int b[][],int c[][]){
memset(tmp,false,sizeof(tmp));
for(int i=;i<;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)
tmp[i][j]=(tmp[i][j]+a[i][k]*b[k][j])%mod;
for(int i=;i<;i++)
for(int j=;j<;j++)
c[i][j]=tmp[i][j];
}
il int est(int n){
if(n==) return ;
if(n==) return ;
if(n==) return ;
memset(base,,sizeof(base));
memset(ans,,sizeof(ans));
ans[][]=ans[][]=ans[][]=;
base[][]=base[][]=base[][]=base[][]=base[][]=base[][]=;
for(int pow=n-;pow;pow>>=){
if(pow&) mul(ans,base,ans);
mul(base,base,base);
}
return (ans[][]+ans[][]+ans[][]*)%mod;
}
il void init(){
scanf("%d%d",&s,&t);
printf("%d\n",(mod+est(t)-est(s-))%mod);
}
int main(){
freopen("fibonacci.in","r",stdin);
freopen("fibonacci.out","w",stdout);
scanf("%d",&T);
for(int i=;i<=T;i++) init();
return ;
}

Task 3

小 W 千辛万苦做出了数列题,突然发现小 M 被困进了迷宫里。
迷宫是一个有 N(2≤N≤1000)个顶点 M(N−1≤M≤N∗(N − 1)/2 ) 条边的无向连通图。
设 dist1[i]表示在这个无向连通图中, 顶点 i 到顶点 1 的最短距离。
为了解开迷宫,现在要求小 W 在这个图中删除 M − (N − 1)条边,使得这个迷宫变成一
棵树。设 dist2[i]表示在这棵树中,顶点 i 到顶点 1 的距离。
小 W 的任务是求出有多少种删除方案,使得对于任意的 i,满足 dist1[i]=dist2[i]。
快点帮助小 W 救出小 M 吧!

对于 100%的数据:2≤N≤1000

最短路径树计数

预处理最短路

因为每个节点链接到从1出发的最短路的距离相等节点是等价的

所以直接统计即可

 #include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<algorithm>
#include<math.h>
#include<string>
#include<string.h>
#include<queue>
#define il inline
using namespace std;
const int N=;
int n,m,M=,inq[N],d[N],p[N][N],g[N];
long long ans=;
queue<int> q;
struct edge{int next,to,val;
} e[];
struct data{int dist,id;
} b[N];
il void addedge(int x,int y,int z){
e[++M]=(edge){g[x],y,z};g[x]=M;
}
il bool cmp(data a,data b){
return a.dist<b.dist;
}
int main(){
freopen("treecount.in","r",stdin);
freopen("treecount.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=;i<=n+;i++)
for(int j=;j<=n+;j++)
p[i][j]=p[j][i]=(<<);
for(int i=,x,y,z;i<=m;i++){
scanf("%d%d%d",&x,&y,&z);
addedge(x,y,z);
addedge(y,x,z);
p[x][y]=p[y][x]=z;
}
for(int i=;i<=n;i++) d[i]=(<<);
memset(inq,false,sizeof(inq));
d[]=;q.push();
while(!q.empty()){
int h=q.front();q.pop();inq[h]=false;
for(int i=g[h];i;i=e[i].next)
if(d[e[i].to]>d[h]+e[i].val){
d[e[i].to]=d[h]+e[i].val;
if(!inq[e[i].to]){
inq[e[i].to]=true;
q.push(e[i].to);
}
}
}
for(int i=;i<=n;i++){
b[i].dist=d[i];
b[i].id=i;
}
sort(b+,b+n+,cmp);
for(int i=;i<=n;i++){
int cnt=;
for(int j=;j<i;j++)
if(b[j].dist+p[b[j].id][b[i].id]==b[i].dist)
cnt++;
ans=ans*cnt%2147483647ll;
}
cout<<ans;
return ;
}

常州day3的更多相关文章

  1. [日常训练]常州集训day3

    T1 Description 有$K$个石子,石子只能放在$N$条水平线与$M$条竖直线构成的网格的交点上. 求用$K$个石子最多能找到多少四边平行于坐标轴的长方形,它的四个角上都恰好放着一枚石子. ...

  2. 常州培训 day3 解题报告

    第一题: 给出数轴正半轴上N个点的坐标和其权值,给出初始体力值M,人一开始在位置0,体力值会随着走过路程的增加而增加,走多少个单位的路消耗多少体力值.到每个点可以打掉,消耗的体力值就是其权值.求 最多 ...

  3. 【2016常州一中夏令营Day3】

    小 W 摆石子[问题描述]小 W 得到了一堆石子,要放在 N 条水平线与 M 条竖直线构成的网格的交点上.因为小 M 最喜欢矩形了,小 W 希望知道用 K 个石子最多能找到多少四边平行于坐标轴的长方形 ...

  4. 冲刺阶段day3

    day3 项目进展 今天周三,我们五个人难得的一整个下午都能聚在一起.首先我们对昨天的成果一一地查看了一遍,并且坐出了修改.后面的时间则是做出 登录界面的窗体,完善了登录界面的代码,并且实现了其与数据 ...

  5. python笔记 - day3

    python笔记 - day3 参考:http://www.cnblogs.com/wupeiqi/articles/5453708.html set特性: 1.无序 2.不重复 3.可嵌套 函数: ...

  6. python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理

    python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...

  7. Spark菜鸟学习营Day3 RDD编程进阶

    Spark菜鸟学习营Day3 RDD编程进阶 RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lambda表示式来替换对象写 ...

  8. Spark Tungsten揭秘 Day3 内存分配和管理内幕

    Spark Tungsten揭秘 Day3 内存分配和管理内幕 恭喜Spark2.0发布,今天会看一下2.0的源码. 今天会讲下Tungsten内存分配和管理的内幕.Tungsten想要工作,要有数据 ...

  9. Catalyst揭秘 Day3 sqlParser解析

    Catalyst揭秘 Day3 sqlParser解析 今天我们会进入catalyst引擎的第一个模块sqlparser,它是catalyst的前置模块. 树形结构 从昨天的介绍我们可以看到sqlPa ...

随机推荐

  1. vscode中安装使用markdown 插件

    linux中好用的IDE    vscode是微软推出的一款好用免费的IDE,可以快速部署开发环境,所说配置有些繁琐,但是瑕不掩瑜.它同时支持很多种拓展的编辑器,MarkDown只是其中的一种. 安装 ...

  2. Linux内核学习笔记(6)-- 进程优先级详解(prio、static_prio、normal_prio、rt_priority)

    Linux 中采用了两种不同的优先级范围,一种是 nice 值,一种是实时优先级.在上一篇粗略的说了一下 nice 值和实时优先级,仍有不少疑问,本文来详细说明一下进程优先级.linux 内核版本为 ...

  3. Matplotlib外观和基本配置笔记

    title: matplotlib 外观和基本配置笔记 notebook: Python tags:matplotlib --- 参考资料,如何使用matplotlib绘制出数据图形,参考另一篇mat ...

  4. leetcode个人题解——#40 Combination Sum2

    思路:解法和39题类似,改动了两处: 1.因为题目要求每个元素只能出现一次(不代表每个数只能有一个,因为数据中会有重复的数字),所以代码中21行搜索时下一次循环的位置+1: 2.将临时存放答案的vec ...

  5. golang笔记2_程序结构

    golang程序结构 2.1 命名 Golang中的命名遵循这样一个简单原则,名字的开头必须是字母或者下划线,后面跟字母.数字或者下划线(这里与C语言中是一致的). 在函数内部声明的实体,即局部变量, ...

  6. [朴孝敏][Gold]

    歌词来源:http://music.163.com/#/song?id=406924220 作曲 : Ryan S. Jhun/David Quinones/Edwin Menjivar/Mateo ...

  7. 线段树---no end

    额,还有 :区间操作,交,并,补等 区间合并 扫描线 这些问题有空再研究吧.... 先看j2ee了..... 传送门 版权声明:本文为博主原创文章,未经博主允许不得转载.

  8. 第八,九周web制作代码

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...

  9. cobbler配置要基于PXE 环境,cobbler是pxe环境的二次封装

    一:安装cobbler.httpd yum install -y cobbler httpd 二:启动cobbler.httpd systemctl start cobblerd.service sy ...

  10. 树莓派无显示器、无网线,优盘(U盘)启动,远程桌面

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:树莓派无显示器.无网线,优盘(U盘)启动,远程桌面     本文地址:http://techi ...