19-10-24-J-快乐?
向未来的大家发送祝福(不接受的请自动忽略):
祝大家程序员节快乐!
好了。
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-快乐?的更多相关文章
- Ubuntu 19.10 发布 | 云原生生态周报 Vol. 24
作者 | 木苏.进超.冬岛.元毅.心水.衷源 业界要闻 1.云原生编程语言 Pulumi 1.0 pulumi ,一款中立的开源云开发平台,Pulumi 支持多语言.混合云环境.完全可扩展.初期支持 ...
- python中使用Opencv进行车牌号检测——2018.10.24
初学Python.Opencv,想用它做个实例解决车牌号检测. 车牌号检测需要分为四个部分:1.车辆图像获取.2.车牌定位.3.车牌字符分割和4.车牌字符识别 在百度查到了车牌识别部分车牌定位和车牌字 ...
- 10.24 正睿停课训练 Day8 AM
目录 2018.10.24 正睿停课训练 Day8 AM A 棒棒糖(组合) B 彩虹糖(思路 博弈) C 泡泡糖(DP) 考试代码 A B C 2018.10.24 正睿停课训练 Day8 AM 期 ...
- 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令
[源码下载] 背水一战 Windows 10 (24) - MVVM: 通过 Binding 或 x:Bind 结合 Command 实现,通过非 ButtonBase 触发命令 作者:webabcd ...
- 期刊:DOI :10.3969/j.issn.1001-2400.2012.01.008
DOI:10.3969/j.issn.1001-2400.2012.01.008 “/” 分为前缀和后缀两部分中间用一斜杠分开,前缀中又以小圆点分为两部分. "DOI":一篇期刊论 ...
- table-cell http://www.cnblogs.com/StormSpirit/archive/2012/10/24/2736453.html
http://www.cnblogs.com/StormSpirit/archive/2012/10/24/2736453.html
- 使用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 ...
- [Linux] 在 Ubuntu 19.10 上开启 SSH 服务并允许远程登录
在 Ubuntu 19.10 上安装 SSH,并开启服务 0.检查并确认系统当前是否已安装SSH: sudo ps -e | grep ssh 如果只有 ssh-agent 说明 ssh-server ...
- [Linux] 树莓派 4B 安装 Ubuntu 19.10 (Eoan Ermine) IOT 版
硬件:Raspberry Pi 4B系统:Ubuntu 19.10 (Eoan Ermine) for IOT官网:https://ubuntu.com/download/iot/raspberry- ...
- Java习题10.24
Java习题10.24 1. 1,3.connect()与accept():这两个系统调用用于完成一个完整相关的建立,其中connect()用于建立连接.accept()用于使服务器等待来自某客户进程 ...
随机推荐
- bfs+dfs乱搞+类似拓扑排序——cf1182D
代码不知道上了多少补丁..终于过了 用类似拓扑排序的办法收缩整棵树得到x,然后找到x直连的最远的和最近的点 只有这三个点可能是根,依次判一下即可 另外题解的第一种方法时找直径,然后判两端点+重心+所有 ...
- js 过滤非法字符
demo = 'zhang#@$san'; reg=/[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im; if(reg.test(demo)){ t ...
- mac 10.9 install cocoapods issue
If you've installed the OS X Mavericks Beta and you're having ruby issues like this: /System/Library ...
- pinmap 和 pin allocation
串口管脚分配
- 初探Remax微信小程序
1.创建项目 npx degit remaxjs/template-wechat my-app cd my-app && npm install 2.运行项目 npm run dev ...
- 关于IOC
1. [调侃]IOC前世今生 http://www.cnblogs.com/showjan/p/3950989.html#!comments 2. 使用ConfigurationManager类 读写 ...
- Jmeter性能测试 入门【转】
Jmeter性能测试 入门[转] Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率. 熟练使用Jmeter后, 能用Jmeter ...
- 【JZOJ3301】家族
description 阿狸和桃子养了n 个小阿狸, 小阿狸们每天都在一起玩的很开心. 作为工程师的阿狸在对小阿狸们之间的关系进行研究以后发现了小阿狸的人际关系由某种神奇的相互作用决定, 阿狸称之为& ...
- vim的个性化配置(方便编程)
在用户主目录下新建vimrc即可.例如: vim ~/.vimrc 然后复制进去即可. 配置如下: "关闭vim一致性原则 set nocompatible "显示行号 set ...
- csps-模拟7778lrd两试
题面:https://www.cnblogs.com/Juve/articles/11707775.html 位运算: 大力分类讨论 第一次发现若a^b=c,则c^b=a,c^a=b #include ...