LA 4255 Guess
来源:互联网 发布:碣石正车行淘宝店 编辑:程序博客网 时间:2024/05/22 16:04
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2256
题意:给定一串数字a1,a2....an,给出sij的正负数值。sij代表ai+...aj的大小。求一组结果满足此条件。-10<=ai<=10.
思路:
设:Bi = a1+ a2 + ... ai,则,我们可以求出Bj和Bi-1的大小关系。可以由大到小连一条有向边,对此有向图做拓扑排序。
拓扑排序的做法如下:我们规定节点初始值:Bk =0(这只是一个相对值,事实上我们求的ai是Bi与Bi-1的差值,所以Bi初始是什么都没有关系,我们求得是相对差).
如果Bi 向Bj有一条有向边,那么Bi>Bj,说明Bi至少比Bj大1,我们用v[k]记录Bk的值,不断调整此数值。最终就能求得一组解。
#include <stdio.h>#include <stdlib.h>#include <vector>#include <queue>#include <iostream>using namespace std;#define Maxn 20vector<int> g[Maxn];int indeg[Maxn],v[Maxn];int n;void init(){for(int i=0;i<Maxn;i++) {g[i].clear();indeg[i] = 0;v[i] = 0;}}void toposort(){queue<int> q;for(int i=0;i<=n;i++){if(indeg[i] == 0) q.push(i);}while(!q.empty()){int s = q.front();q.pop();for(int i=0;i<g[s].size();i++){int t = g[s][i];v[t] = min(v[t],v[s]-1);if(--indeg[t] == 0){q.push(t);}}}}void output(){for(int i=1;i<=n;i++){if(i!=n) printf("%d ",v[i]-v[i-1]);else printf("%d\n",v[i]-v[i-1]);}}int main(){#ifndef ONLINE_JUDGEfreopen("in.txt","r",stdin);#endifint t;char str[20];scanf(" %d",&t);while(t--){init();scanf(" %d",&n);scanf("%s",str);for(int i=1,p=0;i<=n;i++){for(int j=i;j<=n;j++,p++){if(str[p] == '-'){g[i-1].push_back(j);indeg[j]++; }else if(str[p] == '+'){g[j].push_back(i-1);indeg[i-1]++;}}}toposort();output();}return 0;}
- LA 4255 Guess
- LA 4255 Guess
- LA 4255(p309)----Guess
- LA 4255 Guess 拓扑排序
- uva La 4255 Guess (拓扑排列)
- UvaLive-4255-Guess
- UVALive - 4255 Guess
- UVALive - 4255 Guess
- UVALive 4255 Guess
- UVALive 4255 Guess
- Guess
- guess
- UVALive 4255 Guess【拓扑排序 】
- UVALive 4255-Guess-拓扑排序
- uva 1423 LA 4255
- la la la, la la la
- UValive 4255 Guess(拓扑排序)
- UA 4255 Guess (拓扑排序)
- Android开机启动检测和连接wifi检测
- 如何在linux上用squid搭建代理服务器_足够详细
- javascript 中with用法
- [转载]计算机视觉领域的一些牛人博客
- STM32学习(一)—STM32固件库的使用
- LA 4255 Guess
- 在.net中使用sql存储过程
- mysql 函数错误
- iis服务器出现:[Microsoft][ODBC …
- ubuntu启动时开启或停止服务
- netbeans add tomcat server in ub…
- Myeclipse下web项目改名
- latex的中文支持
- 初识spring web mvc