UVALive - 4255 Guess

Smart200 PLC实现Bool信号接通延时、关闭延时作用 解决Smart200 PLC时间继电器和脉冲扫描P或N不能重复使用的问题,用于Bool信号延时接通和延时关闭的作用,可调整时间基数 阅读详情

给定一个字符矩阵,s[i][j]为+,-,0分别表示ai+……….aj的和为正,负,0。可以将连续和转化为前缀差,即s[i][j]为+可以表示为B[j]-B[i-1]为正,B[i]表示前i项的和,B[0]为0,然后拓扑排序找出相对关系再依次取值即可。注意相同的B[i],B[j]要注意保存,最后两者的值统一。最终输出结果a[i] = B[i]-B[i-1]l.

代码:

#include <iostream>
#include <sstream>
#include <cstdio>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <string>
#include <map>
#include <cmath>
#include <vector>
#include <queue>
#include <algorithm>
#define esp 1e-6
#define pb push_back
#define mp(a, b) make_pair((a), (b))
#define in  freopen("in.txt", "r", stdin);
#define out freopen("out.txt", "w", stdout);
#define print(a) printf("%d\n",(a));
#define bug puts("********))))))");
#define stop  system("pause");
#define Rep(i, c) for(__typeof(c.end()) i = c.begin(); i != c.end(); i++)
#define inf 0x0f0f0f0f
using namespace std;
typedef long long  LL;
typedef vector<int> VI;
typedef pair<int, int> pii;
typedef vector<pii,int> VII;
typedef vector<int>:: iterator IT;
const int maxn = 20;
VI g[maxn], equa[maxn];
int du[maxn], L[maxn];
int B[maxn];
int n, cnt;
bool toposort(void)
{
    memset(du, 0, sizeof(du));
    for(int i = 0; i <= n; i++)
        for(int j = 0; j < g[i].size(); j++)
            du[g[i][j]]++;
    queue<int>  Q;
    for(int i = 0; i <= n; i++)
        if(!du[i])
            Q.push(i);
    cnt = 0;
    while(!Q.empty())
    {
        int x = Q.front();
        Q.pop();
        L[cnt++] = x;
        for(int i = 0; i < g[x].size(); i++)
        {
            int v = g[x][i];
            du[v]--;
            if(!du[v])
                Q.push(v);
        }
    }
    return cnt == n+1;
}
int main(void)
{
    int T;
    for(int t = scanf("%d", &T); t <= T; t++)
    {
        for(int i = 0; i < maxn; i++)
            g[i].clear(),equa[i].clear();
        memset(B, 0x0f, sizeof(B));
        scanf("%d", &n);
        char s[1000];
        scanf("%s", s);
        cnt = 0;
        for(int i = 1; i <= n; i++)
            for(int j = i; j <= n; j++)
            {
                if(s[cnt] == '+')  g[i-1].pb(j);
                else if(s[cnt] == '-')  g[j].pb(i-1);
                else   equa[i-1].pb(j);
                cnt++;
            }
        toposort();
        B[0] = 0;
        int k;
        for(int i = 0; i < cnt; i++)
            if(!B[L[k = i]]) break;
        for(int i = k -1; i >= 0; i--)
            B[L[i]] = i - k;
        for(int i = k+1; i < cnt; i++)
            B[L[i]] = i-k;
        for(int i = 0; i < cnt; i++)
            for(int j = 0; j < equa[L[i]].size(); j++)
                B[equa[L[i]][j]] = B[L[i]];
        for(int i = 1; i <= n; i++)
            printf("%d ", B[i]-B[i-1]);
        puts("");
    }
    return 0;
}
Python进阶005:修改Jupyter Notebook的工作路径 1、Jupyter Notebook简介 2、修改Jupyter Notebook的工作路径 如下三个步骤: 一、安装notebook 在CMD命令行中输入: pip install notebook 二、启动notebook jupyter notebook 启动后发现是在你的用户目录下,如下图所示,但是该目录下有很多的其他文件或文件夹,因此我想把这个环境切换到我单门创建的一个文件夹中。 三、创建notebook的配置文件 在CMD命令行中执行: jupyter notebook --genera 阅读详情

相关推荐

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感

Ansys Electronics Desktop仿真——HFSS线圈寄生电阻,电感

冲击10w 1万+

UVALive4255-Guess(拓扑排序)

题目链接 题意:对于一个序列a1,a2...an,我们可以计算出一个符号矩阵S,其中Sij为ai+..+aj的正负号。给出符号矩阵,要求输出一个对应的序列。 思路:使用连续和转化为前缀和之差的技巧,将前缀和当做一个顶点,那样就能确立边的关系,以及入度数,之后用拓扑排序求解,先着一个入度为0的顶点,删除其相关的边,循环操作。 代码: #include #includ

懒人一枚。 1316

达梦7实时主备集群

达梦7实时主备配置实时主备数据环境说明配置主库配置 dm.ini配置dmmal.ini配置dmarch.ini配置dmwatcher.ini配置dmwatcher.ini以mount方式启动主库设置OGUID修改数据库为primary模式配置备库 在服务器部署过程中,通常搭建有数据库主备集群,用于防备数据库服务器产生问题影响数据正常,在此,我们分享一下在虚拟机环境中模拟搭建实时主备的数据守护模式。 在搭建环境之前,需用户确认主备DM7的数据库已安装完成,且版本一致,同时还应注意各实例所在主机的操作系统位数、

g360382的博客 1022

UVALive - 4255 - Guess (拓扑排序)

Guess 题目传送:Guess 白书例题 注意拓扑排序时,,入度同一时候为0的前缀和须要赋值为同一个数(这个数能够随机取。由于前缀和是累加的,每个a的数值都仅仅和前缀和之差有关)。,由于此时能够看成他们的前缀和是相等的,不存在大小关系,,而存在大小关系的都连了一条有向边。。假设此时不赋值为同一个数,,可能对于符号0不是正解。,从而产生错误的结果。。 AC代码: #i...

weixin_33850015的博客 145

NXP KW47蓝牙MCU低功耗实测:从8μA睡眠到5年续航的优化实战

在物联网和嵌入式系统开发中,低功耗设计是决定电池供电设备续航能力的关键技术。其核心原理在于通过事件驱动、状态机管理和精细的电源域控制,使设备在空闲时进入深度睡眠,仅在需要时快速唤醒工作,从而将平均电流从毫安级降至微安级。这项技术的工程价值在于能够实现纽扣电池供电设备长达数年的使用寿命,广泛应用于智能家居传感器、可穿戴设备、资产追踪和工业监测等领域。以NXP KW47系列无线MCU为例,其集成的Arm Cortex-M33双核与专用射频单元,配合多级睡眠模式和高效DC-DC转换器,为超低功耗蓝牙应用提供了硬件

weixin_30162121的博客 256

SAP-MM-PR分配货源并转PO

SAP-MM-PR分配货源并转PO

yanzibing99的博客 5473

UVALive - 4255(拓扑排序+构造)

传送门 思路:连续和转化为前缀和之差。可以将问题转化为已知序列 a1,a2,...,an 的大小关系,求出任意一组满足条件的序列。 拓扑排序即可。 我是以sum大指向sum小的方向建边。假设入度为零的点即最大值点的值为0,那么后面的点比它小就小1。 注意sum[0]=0,0也要跑。 #include<bits/stdc++.h> using namespace std; typ...

Ordinarv 213

《生化危机9:安魂曲》D加密免BIOS破解方案详解

数字版权管理(DRM)技术通过加密手段保护软件版权,Denuvo(D加密)作为主流方案常应用于3A游戏。其原理是通过实时验证机制阻止未授权访问,但可能影响性能表现。本文以《生化危机9》为例,解析一种免BIOS修改的D加密绕过方案,该方案通过授权启动器模拟正版验证流程,保持系统零侵入性。实测表明,该方法在GTX 1060至RTX 3070等多硬件平台均能稳定运行,支持MOD扩展且兼容Reshade画质增强,为玩家提供开箱即用的绿色版体验。

weixin_33898233的博客 925

UVALive 4255-Guess-拓扑排序

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=21664 题意:对于一个序列a1,a2...an,我们可以计算出一个符号矩阵S,其中Sij为ai+..+aj的正负号或0,代表下标i累加到j的元素和为正负或0。给出符号矩阵,要求输出一个对应的序列。 对于Sij,我们可以看成前缀和SUM[J]-SUM[I-1]

缺氧 434

LabVIEW数据采集-数字I/O/计数器

labview 数据采集 数字I/O 计数器

weixin_43781045的博客 5617

UCIE Specification详解(八)

Logical Physical Layer(逻辑物理层)

Crazzy_M的博客 1608

UVALive - 4255-Guess(拓扑排序)

Problem UVALive - 4255-Guess Time Limit: 3000 mSec Problem Description Input The input consists of T test cases. The number of test cases T is given in the first line of the input. Each ...

weixin_30724853的博客 127

Centos 7 Linux 离线安装使用 MySQL 5.7:下载、安装、配置、使用

本文详细介绍了在 CentOS 7 系统下离线安装 MySQL 5.7 的完整流程,包括环境准备、安装包下载、用户与目录配置、数据库初始化、服务启动与自启设置、root 密码修改、远程访问开启及防火墙配置等关键步骤,并提供了本地与远程客户端(如 Navicat、DBeaver)的连接使用方法,适合无网络环境下的数据库部署参考。

寒水馨 · 轻量级技术文档 · hanshuixin.org 6112

UvaLive4255 Guess

UvaLive 4255Guess 题意:给你一个上三角矩阵S。S[i][j]取值为‘+’‘-’‘0’。表示序列的和从num[i]+...+num[j]的取值分别为正负0。 思路:把前缀和看做点。把矩阵的正负看做点之间的边。然后对这些点进行拓扑排序。要注意的是取值为0的特殊情况。 /* ID: onlyazh1 LANG: C++ TASK: Guess */ #incl...

weixin_33887443的博客 81

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

UVALive 4255 Guess

题意: 给你半个矩阵  如果(i,j)的位置是'-'  则说明sum[i...j]0  如果是'0'  说明sum=0  给出一种满足这个矩阵的序列  序列元素绝对值在10以内 思路: 很容易想到的是将sum[i...j]转化为sum[j]-sum[i-1]  即用前缀和来表示  那么题中的矩阵就可以转化成前缀和之间的大小比较  也就是说  我们可以通过将前缀和当成点  将大小关系作为边

House 1174

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Guess UVALive - 4255

题意:   定义数组A的“符号矩阵”F,F[i][j]表示A[i] + A[i+1] + ... + A[j]。   已知F,给出A的一个可能解。 分析:   1. 利用前缀和。F[i][j[ 表示 S[j] - S[i-1]。   2. 问题转化为已知 S[0] S[1] ... S[n] 的大小关系,并且已知 S[0] = 0,求 S 的可能解,进而可求出A数组。   3. DAG...

weixin_30547797的博客 102

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

UValive4255 Guess

我们死到临头,没有退路,迎接我们的必将是强大的对手。

wumingshi 500

UvaLive-4255-Guess

算是个模拟题吧,先完成对字符串的处理和转换。我用的是DFS进行搜索~ 代码: #include #include #include using namespace std; char map[11][11]; int n,ans[11],sum[11]; bool DFS(int index) { if(index==n+1) return true; for(int i=-

z309241990的专栏 569

UVALive--4255 Guess

Given a sequence of integers, a1,a2,...,an, we define its sign matrix S such that, for 1 ≤ i ≤ j ≤ n, Sij = “ + ” if ai + ... + aj > 0; Sij = “−” if ai + ... +

Bowen的博客 293

uvalive 4255 Guess(拓扑排序)

算好题目,反正我没想到可以用图论做(虽然现在做的是图论专题= =) 首先是要把求每个位置上的值转化为求 “前缀和之差”,这是一个很有用的技巧 其次,由输入的(n+(n-1)+...+2+1)个符号,可以确定出 n个前缀和的大小关系,并从大到小做有向边建图 之后,用拓扑排序依次从大到小找到前缀和,与此同时对num[]做处理,实际上是离散出这n个值。 这n值符合之前的大小关系,所以他...

aizhengcuo9261的博客 143

UVALive 4255 Guess【拓扑排序 】

题目转不过来:点击打开链接 这个题真是万万没想到是拓扑排序啊啊啊,以为和之前有一个变换质数的题一样是深搜==挑了半天没看出来哪里错了⊙﹏⊙b汗先说拓扑排序是什么来着,这也是扔了几乎半年的知识点==,通过找连着的边,让点的入度减少,入度为0的点入队列,从而形成一条可行路径==这题是白书训练指南310页的例题,“连续和转化为前缀之和”这个性质我想到了,但是没想到正负号就可以确定前后两个前缀和从而在拓

MissZhou要努力 563

UValive 4255 Guess(拓扑排序)

题目链接 https://vjudge.net/problem/UVA-1423 这个题目巧妙之处在于我们可以通过符号推断出前缀和的大小关系, 然后我们拓扑排序一下,我是从大到校排序的,所以赋值也是从大到小; 额按后我们就可以前缀相减得出各个数的大小。 #include<bits/stdc++.h> using namespace std; char s[105]; int in[10...

accepted_accepted的博客 175

uvalive4255 Guess --- 拓扑排序

按白书的解法,区间和转前缀和,知道任意两个前缀和Si,Sj的相对大小关系,找出一组Si的解即可。大小关系转化成图,注意相等的两个Si。 #include <cstdio> #include <cstring> #include <algorithm> #include <queue> #define MAXN 1200 using names...

。 180
上一篇: UVA - 10047 The Monocycle
下一篇: POJ - 1094 Sorting It All Out 拓扑排序
rootial
博客等级 码龄15年 2粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值