UVA 10410——Tree Reconstruction

题意:给定一颗树的BFS和DFS,求这棵的每个节点。


思路:用栈模拟维护。对应的BFS为每个节点到根节点的距离,然后比较当前节点和栈顶节点与根的距离,如果当前节点大,则为栈顶节点的孩子,否则弹出继续比较。


code:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <sstream>
#include <string>
#include <vector>
#include <list>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <bitset>using namespace std;typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;const int INF=0x3fffffff;
const int inf=-INF;
const int N=1000005;
const int M=1005;
const int mod=1000000007;
const double pi=acos(-1.0);#define cls(x,c) memset(x,c,sizeof(x))
#define fr(i,s,n) for (int i=s;i<=n;i++)int v[M];
vector<int>p[M];
stack<int>s;void sol(int q)
{while (1){if (v[q]==2||v[q]>1+v[s.top()]){p[s.top()].push_back(q),s.push(q);break;}else s.pop();}
}
int main()
{int n,x;while (~scanf("%d",&n)&&n){fr(i,1,n) scanf("%d",&x),v[x]=i,p[i].clear();scanf("%d",&x); s.push(x);fr(i,1,n-1) {scanf("%d",&x);sol(x);}fr (i,1,n){printf("%d:",i);for (int j=0;j<p[i].size();j++)printf(" %d",p[i][j]);puts("");}while (!s.empty()) s.pop();}
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

求助:DataGrid加行号的问题

我的数据是fname,lnameprivatevoidPage_Load(objectsender, System.EventArgs e) { if(!IsPostBack) { myConnectionnew SqlConnection("server127.0.0.1;uidsa;pwdsa;databaseqqq;"); strSQL"SELE…

UVA 10895——Matrix Transpose

题意&#xff1a;给定一个矩阵&#xff08;每一行有几个非0的数据&#xff0c;对应的位置以及数值&#xff09;&#xff0c;输出这个矩阵的转置矩阵。 思路&#xff1a;直接模拟&#xff0c;用两个vector&#xff0c;一个维护数值&#xff0c;另外一个维护行号。注意长度为0时输…

UVA 514——Rails

题意&#xff1a;给定两个序列A和一到n的排列B&#xff0c;问能否通过一个栈的push和pop操作使得A变成B。 思路&#xff1a;直接构造一个栈模拟即可&#xff0c;注意换行。 code&#xff1a; #include <bits/stdc.h> using namespace std;int v[1005],n;int main() {whi…

UVA 536——Tree Recovery

题意&#xff1a;给定一颗树的先根遍历和中根遍历&#xff0c;然后求后根遍历。 思路&#xff1a;先根遍历的第一个为root&#xff0c;然后找到root在中根的位置&#xff0c;进而递归左右儿子求解。 code&#xff1a; #include <iostream> #include <cstdio> #incl…

CVS的使用教程(转)

、什么是CVS? CVS - Concurrent Versions System&#xff08;并发版本管理系统&#xff09;是一个版本控制管理系统&#xff0c;它是目前最为广泛使用的一个系统。 在多人共同开发一个大型项目时&#xff0c;源代码的维护和版本维护是一件令人头疼的事情&#xff0c;由于多人开…

6.22打包建立ISS虚拟目录,安装完运行你想运行的程序

http://installshield.jaron.cn/forum/dispbbs.asp?boardID3&ID284614&page1#include "ifx.h" #define Emty "" //宏定义DOS功能把Emty 替换为"" prototype RegUnInstall(STRING);string szDir, szVirtual;prototype void CheckReq…

UVA 11991——Easy Problem from Rujia Liu?

题意&#xff1a;给定一个数组&#xff0c;然后有若干组询问&#xff0c;每次询问求第k个v出现的位置。 思路&#xff1a;用vector构造模拟&#xff0c;吧相同的数的位置放在同一个vector里&#xff0c;对于每次查询输出mp[v][x-1]; code&#xff1a; #include <bits/stdc.h…

压缩图片上传到数据库

保存到数据库public int DyfcListInsert(int id,string name,string username,string content,Byte[] photo) { string sql "S_DyfcList_Insert"; SqlCommand sqlcmd new SqlCommand(sql,DwzxConfiguration.ConnectDB() ,DwzxConfigu…

支持.NET的分布式缓存系统memcached

http://www.infoq.com/news/2007/07/memcached 转载于:https://www.cnblogs.com/didasoft/archive/2007/07/17/821766.html

UVA 1160——X-Plosives

题意&#xff1a;给定一些化合物&#xff08;含有两个元素&#xff09;&#xff0c;当满足k个化合物且有k个元素的时候会发生爆炸&#xff0c;问多少个化合物是不能装车的。 思路&#xff1a;并查集的简单应用。实际上满足条件的时候是一个环&#xff0c;因此用并查集简单判环即…

UVA 1329——Corporative Network

题意&#xff1a;有n个节点&#xff0c;然后执行I u&#xff0c;v&#xff08;把u的父节点设为v&#xff09;和E u&#xff08;询问u到根节点的距离&#xff09;。 思路&#xff1a;并查集。加了信息的并查集&#xff0c;在路径压缩的同时维护距离d[i]; code&#xff1a; #inc…

Atlas 不仅仅是异步

最近学习研究了一下微软的AJAX框架,Atlas.这个框架对于实现AJAX里的异步请求,无刷新等技术非常的简便,功能也很强大,当然这些都是建立在DOTNET平台上. 对于这个框架,给我印象很深的就是,作为一个新的框架,能够与现有的ASP.NET技术实现几乎无缝的整合,并且只需要添加若干行…

UVA 11988——Broken Keyboard (a.k.a. Beiju Text)

题意&#xff1a;给定一个字符串&#xff0c;然后【会将光标跳转到头&#xff0c;】会将光标调到尾&#xff0c;问最后正确的输入。 思路&#xff1a;直接用list来模拟即可&#xff0c;【的时候就在头插&#xff0c;】就在尾插&#xff0c;也可根据递归顺序解。 code&#xff1…

使用CodeDom生成程序集

usingSystem;usingMicrosoft.CSharp;usingSystem.CodeDom.Compiler;usingSystem.CodeDom;namespaceTest.CUI{ class Program { static void Main() { // 创建编译器对象 CSharpCodeProvider p new CSharpCodeProvider(); ICodeCompiler cc p.CreateCo…

UVA 11136——Hoax or what

题意&#xff1a;超市搞促销&#xff0c;每天都从箱子里拿出最大和最小的差作为促销金额&#xff0c;给出n天的促销情况&#xff0c;问最后总的促销金额。 思路&#xff1a;set构造&#xff0c;当有小票的时候放入set&#xff0c;每天结束的时候取出头和尾即可。 code&#xff…

SQL Server与Oracle、DB2三种数据库比较

开发数据库应用&#xff0c;选择一个好的数据库是非常重要的。本文从一些方面比较了SQL Server与Oracle、DB2三种数据库&#xff0c;为你选择数据库提供一些参考。开放性 SQL Server只能在Windows 上运行&#xff0c;没有丝毫的开放性&#xff0c;操作系统的系统的稳定对数据库…

汇编语言——第1次上机实验

准备&#xff1a; 硬件&#xff1a;pc机&#xff0c;32位win操作系统&#xff0c;能够运行dos&#xff0c;某些64位win10系统可能会不支持 软件&#xff1a;masm程序 实验内容&#xff1a; 1.winr运行dos&#xff0c;cd到指定的masm目录&#xff08;为了调试方便&#xff0c;所…

codeforce 185 A——Plant

题意&#xff1a;给定一个大三角形&#xff0c;然后每次按照图片分割成4个小三角形&#xff0c;问n次后有多少个向上的三角形。 思路&#xff1a;矩阵快速幂&#xff0c;可以发现&#xff0c;每一个向上的的可以在下一次产生3个向上的&#xff0c;1个向下的&#xff0c;向下的每…

uva 10534——Wavio Sequence

题意&#xff1a;给定一个序列&#xff0c;求一个最长的序列&#xff0c;使得他的前半部分是递增的&#xff0c;而后半部分是递减的&#xff0c;且两部分的长度一样。 思路&#xff1a;经典的LIS问题&#xff0c;和openjudge登山问题一样&#xff0c;前后各扫一遍&#xff0c;找…

在asp.net中调用process.start执行程序

试了N次,发现不行,原来需要设置运行iis进程用户的权限,比较麻烦, MS的站点上有一篇说明:http://support.microsoft.com/default.aspx/kb/555134再找了找,可以先执行cmd.exe,然后以参数形式调用bat文件即可,参考文章:http://codebetter.com/blogs/brendan.tompkins/archive/2004…