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

祝大家程序员节快乐!

好了。

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. 0926CSP-S模拟测试赛后总结

    又一次垫底.持续低迷.20分. 赛时状态还可以.但是过于保守而不思进取.三道题目打了暴力就滚粗了. 暴力还挂掉了. T1暴力因为开小了数组挂成了0.1000的点,子序列个数我开了1e5以为足够了.结果 ...

  2. Java中的栈,堆,方法区和常量池

    要说Java中的栈,堆,方法区和常量池就要提到HotSpot,HotSpot是Sun JDK 和 Open JDK中所带的虚拟机. (Sun JDK 和 Open JDK除了注释不同,代码实现基本上是 ...

  3. C++Builder中注册表的操作

    僮骶头浅5募虻チ耍旅嫖揖鸵砸桓鍪道此得鱐Registry类的用法.首先,先介绍一下TRegistry的属性和方法:TRegistry类一共有四个属性.属性 类型 描述CurrentKey int ...

  4. myeclipse CTRL+1功能

    有时候,在myeclipse或者eclipse中自动编译代码有错误,我们把鼠标放在错误一行能够自动显示出问题原因,但是有时显示问题让人有些匪夷所思,不知所云何物. 此时可以使用<ctrl> ...

  5. service资源

    service的作用:帮助外界用户访问k8s内的服务,并且提供负载均衡 创建一个service vim k8s_svc.yml apiVersion: v1 kind: Service metadat ...

  6. Apache服务器性能如何优化

    配置网站,要充分的把系统资源利用出去,榨干系统的一切潜能,让网站速度发挥到极致.Apache,是用户浏览和网站数据的一个中间桥梁.但是在这里,我们虽然做得并不是很多,但是如果心细打理,有些设置也会起到 ...

  7. 继承Activity和View

    1,当你自定一个继承自view的视图A之后, 如果你在一个继承自Activity的组件B中需要使用A里面的一些方法,如果在B中需要使用A中的一些方法好像不可以直接使用. 需要在B中使用setConte ...

  8. python全栈开发:hashlib加密

     哈希加密代码 #!/usr/bin/env python # -*- coding;utf-8 -*- """ 哈希加密模块中有很多算法,调用不同的算法执行不同的加密, ...

  9. leetcode-106-从中序和后序遍历构造二叉树

    题目描述: 方法一:O(n) O(n) class Solution: def buildTree(self, inorder: List[int], postorder: List[int]) -& ...

  10. eval()方法与str()方法

    eval()方法与str()方法 #_author:Administrator#date:2019/10/31 a={ 'q':{'xxx':3456}}#将一个字典转换成一个字符串a=str(a)p ...