向未来的大家发送祝福(不接受的请自动忽略):

祝大家程序员节快乐!

好了。

ZJ一下

额。

考场上差点死了。

码1h后,T1还没过大样例。

我×××。

后来发现是自己××了。

T2T3丢暴力。

比咕的分多一点点。

Finally:

29
Miemeng 100

03:09:04
25

03:09:04
25

03:09:05
150

03:09:05

Sol:

T1

不多说直接干即可

#include <iostream>
#include <cstring>
#include <cstdio>
#define L 1111111 using namespace std; char st[L],ans[L<<4];
int len,cnt;
bool ndp[L<<4];
inline void addin(const char ch){ans[cnt++]=ch;}
int main(){
// freopen("expression.in" ,"r",stdin);\
freopen("expression.out","w",stdout);
scanf("%s",st);
len=strlen(st);
cnt=0;
for(int i=0;i<len;){
if(st[i]=='-'){
addin(st[i]);
i++;
addin(st[i]);
i++;
if(i>=len||st[i]=='+'||st[i]=='-')continue;
addin('+');
while(i<len&&st[i]!='+'&&st[i]!='-'){
addin(st[i]);
i++;
}
}
else{
addin(st[i]);
i++;
}
}
// cout<<cnt<<endl;
for(int i=0;i<cnt;i++){
if(ans[i]=='-'||ans[i]=='+'){
// cout<<i<<">"<<endl;
int j=i+2;
if(ans[i+1]=='0'){
while(j<cnt&&ans[j]=='0'){//SB
// cout<<j<<endl;
ndp[j]=1;
j++;
}
if(ans[j]!='+'&&ans[j]!='-')ndp[j]=1;
i=j-1;
}
}
}
// printf("%s\n",ans);\
for(int i=0;i<cnt;i++)\
if(ndp[i])\
putchar('+');\
else \
putchar(' ');\
puts("");
for(int i=0;i<cnt;i++){
if(ndp[i]&&ans[i]!='+'&&ans[i]!='-')printf("+");
printf("%c",ans[i]);
}
puts("");
// printf("%s\n",ans);
}

T2

考场上啥都没想出来。

首先如果一条边在一个偶环里就一定无法贡献答案。

第二如果一条边在一个奇环里,可能贡献答案,但是如果在这条边被选后还有另外的奇环,那也无法贡献答案。

于是建一棵搜索树,利用一种类似差分前缀和的思想维护$u \rightarrow fa$这条边所在的奇环偶环数。

(为什么有不快乐联通的图啊)

#include <iostream>
#include <cstring>
#include <cstdio>
#define N 111111
#define M 222222 using namespace std; struct SR{
int f,t,next;
}rs[2*M];
int fl[N],cnt=0;
int pn,edn,ans,
dep[N],
odd[N],
even[N],
odcnt=0;
bool is_v[N],
is_st[N]; void add(int f,int t){
rs[cnt].f=f;
rs[cnt].t=t;
rs[cnt].next=fl[f];
fl[f]=cnt++;
}
void dfs(int k,int pred,int dn){
dep[k]=dn;
for(int i=fl[k];i!=-1;i=rs[i].next){
if(i==(pred^1))continue;
int t=rs[i].t;
if(!dep[t])dfs(t,i,dn+1);
if(dep[k]>dep[t]){
int lps=dep[k]-dep[t]+1;
if(lps&1)odd[k]++ ,odd[t]--,odcnt++;
else even[k]++,even[t]--;
}
}
}
void getsums(int k){
is_v[k]=1;
for(int i=fl[k];i!=-1;i=rs[i].next){
int t=rs[i].t;
if(!is_v[t]&&dep[t]==dep[k]+1){//cout<<k<<"->"<<t<<endl;
getsums(t);
odd[k] +=odd[t];
even[k]+=even[t];
}
}
}
int main(void){
int a,b;
//cin.sync_with_stdio(false);
scanf("%d%d",&pn,&edn);
memset(fl,-1,sizeof fl);
for(int i=1;i<=edn;i++){
scanf("%d%d",&a,&b);
add(a,b);
add(b,a);
}
for(int i=1;i<=pn;i++){
if(!dep[i]){
is_st[i]=1;
dfs(i,-1,1);
}
}
// for(int i=1;i<=pn;i++){\
cout<<i<<" "<<odd[i]<<" "<<even[i]<<endl;\
}
for(int i=1;i<=pn;i++)
if(is_st[i])
getsums(i);
// cout<<odcnt<<endl;
for(int i=1;i<=pn;i++){
if(is_st[i])continue;
// cout<<i<<" "<<odd[i]<<" "<<even[i]<<endl;
if(odd[i]==odcnt&&even[i]==0){
ans++;
}
}
if(odcnt==1)ans++;
printf("%d\n",ans);
}

T3

只gugu不说话

(雾

19-10-24-J-快乐?的更多相关文章

  1. Ubuntu 19.10 发布 | 云原生生态周报 Vol. 24

    作者 | 木苏.进超.冬岛.元毅.心水.衷源 业界要闻 1.云原生编程语言 Pulumi 1.0 pulumi ,一款中立的开源云开发平台,Pulumi 支持多语言.混合云环境.完全可扩展.初期支持 ...

  2. python中使用Opencv进行车牌号检测——2018.10.24

    初学Python.Opencv,想用它做个实例解决车牌号检测. 车牌号检测需要分为四个部分:1.车辆图像获取.2.车牌定位.3.车牌字符分割和4.车牌字符识别 在百度查到了车牌识别部分车牌定位和车牌字 ...

  3. 10.24 正睿停课训练 Day8 AM

    目录 2018.10.24 正睿停课训练 Day8 AM A 棒棒糖(组合) B 彩虹糖(思路 博弈) C 泡泡糖(DP) 考试代码 A B C 2018.10.24 正睿停课训练 Day8 AM 期 ...

  4. 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令

    [源码下载] 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令 作者:webabcd ...

  5. 期刊:DOI :10.3969/j.issn.1001-2400.2012.01.008

    DOI:10.3969/j.issn.1001-2400.2012.01.008 “/” 分为前缀和后缀两部分中间用一斜杠分开,前缀中又以小圆点分为两部分. "DOI":一篇期刊论 ...

  6. table-cell http://www.cnblogs.com/StormSpirit/archive/2012/10/24/2736453.html

    http://www.cnblogs.com/StormSpirit/archive/2012/10/24/2736453.html

  7. 使用mybatis提供的各种标签方法实现动态拼接Sql。使用foreach标签实现遍历查询。比如实现select * from user where id in(1,10,24)这条sql查询语句。

    向sql传递数组或List,mybatis使用foreach解析,如下: 需求: 传入多个id查询用户信息,用下边的sql实现: select * from user where id in(1,10 ...

  8. [Linux] 在 Ubuntu 19.10 上开启 SSH 服务并允许远程登录

    在 Ubuntu 19.10 上安装 SSH,并开启服务 0.检查并确认系统当前是否已安装SSH: sudo ps -e | grep ssh 如果只有 ssh-agent 说明 ssh-server ...

  9. [Linux] 树莓派 4B 安装 Ubuntu 19.10 (Eoan Ermine) IOT 版

    硬件:Raspberry Pi 4B系统:Ubuntu 19.10 (Eoan Ermine) for IOT官网:https://ubuntu.com/download/iot/raspberry- ...

  10. Java习题10.24

    Java习题10.24 1. 1,3.connect()与accept():这两个系统调用用于完成一个完整相关的建立,其中connect()用于建立连接.accept()用于使服务器等待来自某客户进程 ...

随机推荐

  1. kmp变形,带通配符的kmp——华科校赛E 好题

    https://blog.csdn.net/a302549450/article/details/80948741?tdsourcetag=s_pctim_aiomsg 上面是题解的链接.., 其实和 ...

  2. LUOGU P2860 [USACO06JAN]冗余路径Redundant Paths (双联通,缩点)

    传送门 解题思路 刚开始是找的桥,后来发现这样不对,因为一条链就可以被卡.后来想到应该缩点后找到度数为1 的点然后两两配对. #include<iostream> #include< ...

  3. 创建文件夹、新建txt文件

    1.创建文件夹 QString myMkdir(QString path, QString floderName) //参数 path,创建的文件夹所在路径:  参数floderName,所创建的文件 ...

  4. IIR滤波器数字频带转换

    <DSP using MATLAB>(Ingle & John Proakis)3ed,书中表8.2似乎不对. <Discrete Time signal processin ...

  5. vue-router使用入门

    安装及基本配置 # 安装 npm install vue-router # 使用 import Vue from 'vue' import VueRouter from 'vue-router' Vu ...

  6. AWS云管理平台

  7. 怎么取消主键自增长的问题(SQL Server)

    以前经常会碰到这样的问题,当我们删除了一条自增长列为1的记录以后,再次插入的记录自增长列是2了.我们想在插入一条自增长列为1的记录是做不到的.我们可以通过设置SET IDENTITY_INSERT & ...

  8. Python全栈开发:线程、进程和协程

    Python线程 Threading用于提供线程相关的操作,线程是应用程序中工作的最小单元. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #!/usr/bin/env pytho ...

  9. php完整表单实例

    PHP - 在表单中确保输入值 在用户点击提交按钮后,为确保字段值是否输入正确,我们在HTML的input元素中插添加PHP脚本, 各字段名为: name, email, 和 website. 在评论 ...

  10. VS2010-MFC(对话框:模态对话框及其弹出过程)

    转自:http://www.jizhuomi.com/software/160.html 一.模态对话框和非模态对话框 Windows对话框分为两类:模态对话框和非模态对话框. 模态对话框是这样的对话 ...