CCF第四题无向图打印路径 欧拉问题
- #include<iostream>
- #include<vector>
- #include<algorithm>
- #include<stack>
- #define N 10010
- using namespace std;
- vector<long int> head[N];
- stack<long int> way;
- long int n;
- bool visited[N][N];
- bool vis[N];
- long long int d[N];
- void addEdge(long int x,long int y) {
- head[x].push_back(y);
- head[y].push_back(x);
- d[x]++;
- d[y]++;
- }
- void dfs(int u) {
- vis[u]=;
- vector<long int>::iterator pos;
- for(pos=head[u].begin(); pos!=head[u].end(); pos++) {
- long int v=*pos;
- if(!vis[v]) {
- dfs(v);
- }
- }
- }
- void euler(long int u) {
- vector<long int>::iterator pos;
- //利用dfs的方法遍历所有的边
- for(pos=head[u].begin(); pos!=head[u].end(); pos++) {
- long int v=*pos;
- if(!visited[u][v]) {
- visited[u][v]=visited[v][u]=;
- //我这里不用栈,而是在进行下一个点之前就把当前点输出,样例是过了,可是交上去只能得10分
- //cout<<' '<<v;
- euler(v);
- //用栈的话就没问题,可以得90分。
- way.push(v);
- }
- }
- }
- int main() {
- long long int m;
- cin>>n>>m ;
- while(m--) {
- long int x,y;
- cin>>x>>y;
- addEdge(x,y);
- }
- //以前总是得90分的原因就是没有考虑图不连通的情况
- //这里从第一个点出发dfs所有的点,最后检验即可
- dfs();
- bool flag=;
- for(int i=; i<=n; i++)
- if(vis[i]==) {
- flag=;
- break;
- }
- //如果是不连通的,直接输出-1
- if(flag==) cout<<-;
- else {
- long long int odd_num=;
- for(long int i=; i<=n; i++) {
- sort(head[i].begin(),head[i].end());
- if(d[i]%)
- odd_num++;
- }
- if(odd_num>)
- cout<<-;
- else {
- cout<<;
- euler();
- while(!way.empty()) {
- cout<<' '<<way.top();
- way.pop();
- }
- }
- }
- return ;
- }
CCF第四题无向图打印路径 欧拉问题的更多相关文章
- CCF第四题无向图打印路径
#include<iostream> #include<vector> #include<algorithm> #include<stack> #def ...
- 第十三次CCF第四题 1803——04 博弈
我又写了一个简洁版的2.0: 可以作为博弈搜索树的模板 : https://www.cnblogs.com/xidian-mao/p/9389974.html 废话ps: 开始觉得这是一道简单得博弈 ...
- 【刷题】BZOJ 4805 欧拉函数求和
Description 给出一个数字N,求sigma(phi(i)),1<=i<=N Input 正整数N.N<=2*10^9 Output 输出答案. Sample Input 1 ...
- 通过欧拉计划学Rust编程(第54题)
由于研究Libra等数字货币编程技术的需要,学习了一段时间的Rust编程,一不小心刷题上瘾. 刷完欧拉计划中的63道基础题,能学会Rust编程吗? "欧拉计划"的网址: https ...
- HDU5780 gcd (BestCoder Round #85 E) 欧拉函数预处理——分块优化
分析(官方题解): 一点感想: 首先上面那个等式成立,然后就是求枚举gcd算贡献就好了,枚举gcd当时赛场上写了一发O(nlogn)的反演,写完过了样例,想交发现结束了 吐槽自己手速慢,但是发了题解后 ...
- Nyoj42 一笔画问题 (欧拉道路)
http://acm.nyist.net/JudgeOnline/problem.php?pid=42题目链接 #include <cstdio> #include <cstring ...
- poj2480(利用欧拉函数的积性求解)
题目链接: http://poj.org/problem?id=2480 题意:∑gcd(i, N) 1<=i <=N,就这个公式,给你一个n,让你求sum=gcd(1,n)+gcd(2, ...
- 欧拉函数 牛客寒假1 小a与黄金街道
题目链接 分析:这题用到了欧拉函数, 欧拉函数,用φ(n)表示 欧拉函数是求小于等于n的数中与n互质的数的数目 详细可以看看这篇博文https://www.cnblogs.com/linyujun/p ...
- hdu1286 找新朋友 欧拉函数模板
首先这一题用的是欧拉函数!!函数!!不是什么欧拉公式!! 欧拉函数求的就是题目要求的数. 关于欧拉函数的模板网上百度一下到处都是,原理也容易找,这里要介绍一下另一个强势模板. 在这一题的讨论里看到的. ...
随机推荐
- js进阶之闭包
1.首先说下什么是闭包,闭:封闭,包:就像我们的包包~:虽然我在扯淡但是也有其道理咯,闭包就有点像java里面的封装一样,包属性和方法都封装到对象内部,在外部通过共有的get.set方法获取或者设置其 ...
- jsp另外五大内置对象之-exception
//有异常的页面 <%@ page language="java" contentType="text/html; charset=utf-8" page ...
- POJ 3311 Hie with the Pie (状压DP)
题意: 每个点都可以走多次的TSP问题:有n个点(n<=11),从点1出发,经过其他所有点至少1次,并回到原点1,使得路程最短是多少? 思路: 同HDU 5418 VICTOR AND WORL ...
- HDU 3709 Balanced Number (数位DP)
题意: 找出区间内平衡数的个数,所谓的平衡数,就是以这个数字的某一位为支点,另外两边的数字大小乘以力矩之和相等,即为平衡数. 思路: 一开始以为需要枚举位数,枚举前缀和,枚举后缀和,一旦枚举起来就会M ...
- python实现单链表翻转
题目描述: 翻转一个链表 您在真实的面试中是否遇到过这个题? Yes 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 挑 ...
- springboot 修改文件上传大小限制
springboot 1.5.9文件上传大小限制spring:http:multipart:maxFileSize:50MbmaxRequestSize:50Mb springboot 2.0文件上传 ...
- ovx openVirtex的阅读文档
由于flowvisor只有4个版本, 最新更新都是2013年的, 跟底层ovs版本不跟进, 最近斯坦福post一个 ovx, 猜测是flowvisor的加强版, 所以看一下文档说明 文档详见http: ...
- POP简单动画简单使用 (入门级别)
动画可以让APP“更友好”的与用户交互,苹果提供很多的好看的动画供开发者使用,不过简单的平移.旋转.缩放.......使用起来很简单,但是想要进行一些比较复杂的动画效果,使用起来就比较难以实现,俗话说 ...
- iOS重绘机制drawRect
iOS的绘图操作是在UIView类的drawRect方法中完成的,所以如果我们要想在一个UIView中绘图,需要写一个扩展UIView 的类,并重写drawRect方法,在这里进行绘图操作,程序会自动 ...
- 基于idea创建Tomcat远程调试
编辑完catalina文件后重启tomcat