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()用于使服务器等待来自某客户进程 ...
随机推荐
- 如何在select标签中使用a标签跳转页面
1. 需求: 在select中想直接使用a标签跳转,错误想法 <select id=""> <option>choose one</option> ...
- 现金贷平台下载量TOP100 涉逾30家P2P
一.什么是现金贷,现状如何 那么什么是现金贷呢?在笔者看来,狭义的现金贷主要是指基于互联网等技术手段的小额现金贷款,广义的现金贷可以包括任何以小额现金和存款为标的进行借贷的行为,是一种无担保.无抵押. ...
- 【题解】P1440 均分纸牌
均分纸牌 题目描述: 有\(N\)堆纸牌,编号分别为\(1,2,-,N\).每堆上有若干张,但纸牌总数必为\(N\)的倍数.可以在任一堆上取若干张纸牌,然后移动. 移牌规则为:在编号为\(1\)堆上取 ...
- <随便写>同步,异步进程池,线程
from multiprocessing import Pool import time import os def work(n): print("%s run" % os.ge ...
- POJ 2398 map /// 判断点与直线的位置关系
题目大意: poj2318改个输出 输出 a: b 即有a个玩具的格子有b个 可以先看下poj2318的报告 用map就很方便 #include <cstdio> #include < ...
- 使用CEfSharp之旅(3)下载文件 弹出保存框 IDownloadHandler
原文:使用CEfSharp之旅(3)下载文件 弹出保存框 IDownloadHandler 版权声明:本文为博主原创文章,未经博主允许不得转载.可点击关注博主 ,不明白的进群191065815 我的群 ...
- java_过滤器
/** 过滤器: * File类中有两个和listFiles方法重载的方法,方法的参数就是过滤器 * listFiles(FileFilter filter) * java.io.FileFilter ...
- java笔试之尼科彻斯定理
验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和. 例如: 1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 这题也可以用数学公式推理,首项m*(m ...
- 控制类名(className 属性)设置或返回class属性
控制类名(className 属性) className 属性设置或返回元素的class 属性. 语法: object.className = classname 作用: 1.获取元素的class 属 ...
- opencv编译:opencv 3.4.1 编译 contrib模块,增加人脸识别
start cmake-gui select the opencv source code folder and the folder where binaries will be built (th ...