连续几天都有点炸

预计的分拿不到,调整好心态,考试的时候多想一下,think twice,code once

唉,什么情况啊

题解链接

0+0+0

T1读错题输出反了

n*m%2判断是否==1

T2

40分暴力忘记取mod了,全炸了gg

T3

70分暴力输出了中间变量,然后主席树写成了区间第k小,gg

建立10颗线段树维护前k大,因为k<=10

总结:以后认真点.....多推一下样例,合理分配时间,多思考

做完之后检查,最后几分钟不调新程序

下午

题解链接

我可能只能口头ac了,考完后都能说出正解,就是写不来,也许不吃饭就考不好????,我好菜啊

10+20+10

没状态,笔记本不好用,其实T2和T3是都可以切的,但是做了T1,虽然最后想出来了,没写不出来,不值。

T1 找环dfs瞎搞找错了,做了2h,后边没法做了

#include<cstdio>
#include<vector>
#include<cstring>
using namespace std;
const int maxn = ;
struct node{
int v,next;
}edge[maxn*];
int head[maxn*];
const int mod =1e9+;int num;
inline void add_edge(int u,int v) {
edge[++num].v=v;edge[num].next=head[u];head[u]=num;
}
inline int read() {
int x=,f=;
char c=getchar();
while(c<''||c>'') {if(c=='-')f=-;c=getchar();}
while(c>=''&&c<='')x=x*+c-'',c=getchar();
return x*f;
}
bool vis[maxn*];
int n,m;bool flag=;
int dfs(int u,int f) {
int cnt=;
vis[u]=;
for(int i=head[u];i;i=edge[i].next) {
int v=edge[i].v;
if(v==f)continue;
if(vis[v])flag=;
else cnt=(cnt+dfs(v,u))%mod;
}
return cnt%mod;
}
int rd[maxn];
int main () {
n=read();m=read();
for(int i=;i<=m;++i) {
int a=read(),b=read();
add_edge(a,b);add_edge(b,a);
}
long long ans=;
for(int i=;i<=n;++i) {
if(!vis[i]){
flag=;
int qqq=dfs(i,)%mod;
if(!flag)ans=(ans%mod*qqq%mod)%mod;
else ans=(ans<<)%mod;
}
}
printf("%lld\n",ans);
}

T2 想出来了正解,没时间写了,暴力写炸

#include<cmath>
#include<cstdio>
#include<iostream>
using namespace std;
typedef long long LL;
LL n,ans,cnt;
LL a[],k;
int main() {
// freopen("endless.in","r",stdin);
// freopen("endless.out","w",stdout);
cin>>n>>k;
LL x=n;
while(x) {
a[++cnt]=x%k;
x/=k;
}
if(cnt%==) ans=pow(k,cnt/);
else {
for(int i=cnt;i>=1;i--) {
if(a[i]>0&&i%2==0) {
ans+=pow(k,i/2);
break;
}
if(a[i]==&&i%) continue;
ans+=a[i]*pow(k,i/);
if(i==&&a[i]>) ans++;
}
}
cout<<ans<<endl;
return ;
}

T3 想出来了正解,没写,暴力写炸

#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
#define maxn 200007
#define LL long long
int n,K;
int num=;
int val[maxn<<],pos[maxn<<],fa[maxn<<];
int clo[maxn<<],cle[maxn<<],lason[maxn<<],tot=;
struct node{
int v,next;
}edge[maxn<<];
int head[maxn<<];
LL dis[maxn<<],tree[maxn<<],tag[maxn<<],ans=;//I64d见祖宗
void add_edge(int u,int v){
edge[++num].v=v;edge[num].next=head[u];head[u]=num;
}
void dfs(int rt) {
clo[rt]=++tot;cle[tot]=rt;
for(int i=head[rt];i;i=edge[i].next) {
if(edge[i].v==fa[rt]) continue;
fa[edge[i].v]=rt;dis[edge[i].v]=dis[rt]+(LL)val[edge[i].v];
dfs(edge[i].v);
}
lason[rt]=tot;
}
void merge(int l,int r,int rt) {
tree[rt]=tree[rt<<];pos[rt]=pos[rt<<];
if(tree[rt] < tree[rt<<|]) tree[rt]=tree[rt<<|],pos[rt]=pos[rt<<|];
return ;
}
void pushdown(int rt) {
if(!tag[rt]) return ;
tag[rt<<]+=tag[rt];tag[rt<<|]+=tag[rt];
tree[rt<<]-=tag[rt];tree[rt<<|]-=tag[rt];
tag[rt]=;return ;
}
void build(int l,int r,int rt) {
if(l==r) {
tree[rt]=dis[cle[r]];
pos[rt]=cle[r];return ;
}
int mid=(l+r)>>;
build(l,mid,rt<<);
build(mid+,r,rt<<|);
merge(l,r,rt);
}
void update(int l,int r,int rt,int ll,int rr,int c) {
if(ll<=l&& r<=rr) {
tree[rt]-=(LL)c;tag[rt]+=(LL)c;return ;
}
pushdown(rt);
int mid=(l+r)>>;
if(ll<=mid) update(l,mid,rt<<,ll,rr,c);
if(rr>mid) update(mid+,r,rt<<|,ll,rr,c);
merge(l,r,rt);
}
int main() {
//freopen("tour.in","r",stdin);
//freopen("tour.out","w",stdout);
int u,v,now;
scanf("%d%d",&n,&K);
for(int i=;i<=n;i++) scanf("%d",val+i);
for(int i=;i<n;i++)
scanf("%d%d",&u,&v),add_edge(u,v),add_edge(v,u);
dis[]=val[];
dfs();
build(,n,);
while(K--) {
if(!tree[]) break;
ans+=tree[];now=pos[];
while(val[now]) {
update(,n,,clo[now],lason[now],val[now]);val[now]=;now=fa[now];
}
}
printf("%lld\n",ans);
return ;
}

济南day3的更多相关文章

  1. 冲刺阶段day3

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

  2. python笔记 - day3

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

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

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

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

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

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

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

  6. Catalyst揭秘 Day3 sqlParser解析

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

  7. Kakfa揭秘 Day3 Kafka源码概述

    Kakfa揭秘 Day3 Kafka源码概述 今天开始进入Kafka的源码,本次学习基于最新的0.10.0版本进行.由于之前在学习Spark过程中积累了很多的经验和思想,这些在kafka上是通用的. ...

  8. python s12 day3

    python s12 day3   深浅拷贝 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  9. Day3 - Python基础3 函数、递归、内置函数

    Python之路,Day3 - Python基础3   本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...

随机推荐

  1. pyqt设计

    pyqt是python设计GUI的第三方包 作为一个小白,我觉得这篇博客贼好,我就是按照这个博客写的. 这个博客一共分5步,每一步都特别详细. pyqt 打包exe时遇到的问题(我的python环境是 ...

  2. LeetCode(129) Sum Root to Leaf Numbers

    题目 Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a num ...

  3. MIP启发式算法:Variable Neighborhood Decomposition Search

    *本文记录和分享学习到的知识,算不上原创. *参考文献见链接. 本文主要简述和VND VNS RINS很相关的vairable neighborhood decomposition search. 目 ...

  4. Linux学习-系统基本设定

    网络设定 (手动设定与 DHCP 自动取得) 网络其实是又可爱又麻烦的玩意儿,如果你是网络管理员,那么你必须要了解局域网络内的 IP, gateway, netmask 等参数,如果还想要连上 Int ...

  5. foreach遍历数组的表格

    <?php /** * * @authors Your Name (you@example.org) * @date 2017-03-17 19:06:19 * @version $Id$ */ ...

  6. JS实现——Base64编码解码,带16进制显示

    在网上找了个JS实现的Base64编码转换,所以就想自己研究下,界面如下: 将代码以BASE64方式加密.解密 请输入要进行编码或解码的字符: 编码结果以ASCII码16进制显示 解码结果以ASCII ...

  7. day05_05 for循环、break语句

    1.0 输入用户名,密码练习 _user = "alex" _passwd = "abc123" username = input("Username ...

  8. Django 中CSRF中间件 'django.middleware.csrf.CsrfViewMiddleware',

    1.Django中CSRF中间件的工作原理及form表单提交需要添加{% csrf_token %}防止出现403错误 CSRF # 表示django全局发送post请求均需要字符串验证功能:防止跨站 ...

  9. Leetcode 419.甲板上的战舰

    甲板上的战舰 给定一个二维的甲板, 请计算其中有多少艘战舰. 战舰用 'X'表示,空位用 '.'表示. 你需要遵守以下规则: 给你一个有效的甲板,仅由战舰或者空位组成. 战舰只能水平或者垂直放置.换句 ...

  10. 设计模式(二 & 三)工厂模式:概述

    工厂 从 coding 的角度来说,在需要创建对象的时候,直接在方法内部使用 new 关键字来创建,是非常方便的. 然而从全局的角度考虑,这样会使对象变得难以管理和控制,代码会变得非常脆弱,缺乏弹性. ...