QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#305529#7857. (-1,1)-Sumpletecoldwind902AC ✓1692ms129880kbC++203.3kb2024-01-15 15:50:402024-01-15 15:50:41

Judging History

你现在查看的是最新测评结果

  • [2024-01-15 15:50:41]
  • 评测
  • 测评结果:AC
  • 用时:1692ms
  • 内存:129880kb
  • [2024-01-15 15:50:40]
  • 提交

answer


#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
const int mod = 1e9 + 7, INF = 0x3f3f3f3f;
const int N = 4010, M = N << 1;
typedef pair<int, int> PII;
int n, m;
int a[N][N], b[N][N];
int needrow[N], needcol[N];
int nowrow[N], nowcol[N];
map<int, vector<int>> mp;

void solve() {
    cin >> n;
    string s;
    for(int i = 1; i <= n; ++ i){
        cin >> s;
        for(int j = 1; j <= n; ++ j){
            if(s[j - 1] == '+')a[i][j] = 0;
            else a[i][j] = -1;
            nowrow[i] += a[i][j];
            b[i][j] = a[i][j];
        }
    }
    for(int j = 1; j <= n; ++ j)
        for(int i = 1; i <= n; ++ i)
            nowcol[j] += a[i][j];
    for(int i = 1; i <= n; ++ i) cin >> needrow[i];
    for(int i = 1; i <= n; ++ i) cin >> needcol[i];

    int rowsum = 0, colsum = 0;
    for(int i = 1; i <= n; ++ i){
        rowsum += needrow[i];
        colsum += needcol[i];
    }
    if(rowsum != colsum){
        cout << "No" << endl;
        return;
    }

    for(int i = 1; i <= n; ++ i){
        int x = needcol[i] - nowcol[i];
//        cout << x << " \n"[i == n];
        if(x > 0) mp[x].emplace_back(i);//修改次数为x的有i列
    }

//    for(int i = 1; i <= n; ++ i){
//        for(int j = 1; j <= n; ++ j){
//            cout << b[i][j] << " \n"[j == n];
//        }
//    }
//    cout << endl;

    bool ok = true;
    for(int i = 1; i <= n; ++ i){
        int x = needrow[i] - nowrow[i];//当前行有i个需要+1
        vector<PII> del;
        for(auto y = mp.rbegin(); x > 0 && y != mp.rend(); ++ y){
            auto z = *y;//first是修改次数, second是列的编号
            while (!z.second.empty() && x > 0){
                x --;
                del.push_back({z.first, z.second.back()});
                z.second.pop_back();
            }
        }
        if(x > 0){
//            cout << i << ' ' << mp.size() << endl;
            ok = false;
            break;
        }
//        cout << "i = " << i << endl;
        while (!del.empty()){//放入del的时候是从大到小,因此此处是从小到大
            auto y = del.back();
            del.pop_back();
//            cout << y.second << ' ';
            b[i][y.second] ++;
            mp[y.first].pop_back();
            if(mp.find(y.first) != mp.end() && mp[y.first].empty()) mp.erase(y.first);
            if(y.first > 1) mp[y.first - 1].emplace_back(y.second);
        }
//        cout << endl;
    }
    if(ok){
        cout << "Yes" << endl;
        for(int i = 1; i <= n; ++ i){
            for(int j = 1; j <= n; ++ j){
                int ans;
                if(b[i][j] == 1) ans = 1;
                else if(b[i][j] == -1) ans = 1;
                else ans = 0;
                cout << ans;
            }
            cout << endl;
        }
    }
    else cout << "No" << endl;

//    cout << endl;
//    for(int i = 1; i <= n; ++ i){
//        for(int j = 1; j <= n; ++ j){
//            cout << b[i][j] << " \n"[j == n];
//        }
//    }
//    cout << endl;
}

signed main() {
#ifdef ONLINE_JUDGE
#else
    freopen("902.in", "r", stdin);
    freopen("902.out", "w", stdout);
#endif
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    int t = 1; //cin >> t;
    for (int i = 1; i <= t; i++) {
        solve();
    }
    return 0;
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 5632kb

input:

3
+-+
-++
+-+
1 1 1
1 -1 3

output:

Yes
111
001
001

result:

ok n=3

Test #2:

score: 0
Accepted
time: 1ms
memory: 7660kb

input:

3
---
-++
+++
-2 -1 0
-2 -1 0

output:

Yes
110
100
000

result:

ok n=3

Test #3:

score: 0
Accepted
time: 1ms
memory: 5840kb

input:

3
+-+
-++
++-
1 0 2
2 2 -1

output:

No

result:

ok n=3

Test #4:

score: 0
Accepted
time: 1ms
memory: 5612kb

input:

1
-
-1
1

output:

No

result:

ok n=1

Test #5:

score: 0
Accepted
time: 1ms
memory: 5628kb

input:

1
-
0
0

output:

Yes
0

result:

ok n=1

Test #6:

score: 0
Accepted
time: 1ms
memory: 5700kb

input:

20
+-------+-----+++-++
-+-++++----++-++-++-
-+++--+---+--+-++---
-+++-+--+----++---+-
+++-+-++++++-+-+---+
-++-----+----++++++-
+-++--+++++-++-+----
+-+----+---+-+++--+-
+++++-+++++----+--+-
------++++---+--++--
++++--------++++--+-
-+-+-++++-+-++-++--+
---+-++---+-++-++---
+-++++-++----+-+++--
+-+...

output:

Yes
01100011111000111110
10111101011110110010
10000001011001001101
10000111011001110111
01111010101101000100
11110101011101111011
01010100000111100100
11000110101001100010
10100110010100100001
10111000100001101011
01001011111000010101
00000010101100100000
01010010001100001000
00010111110001010010
00...

result:

ok n=20

Test #7:

score: 0
Accepted
time: 0ms
memory: 9968kb

input:

100
++++-+-+--++++++-+--+--++-+-+--+++++-+++---+-+-+-++-+-+++-------+-++--+-++--+--+++++-++-+---+--+--++
-++--++-+-++++-+---++-+-+-+-+-+-+-+-+--+-+--+--+++---+--+-----+-----+-++-++-+-++++++--+-+++-+++-++++
--+---++-++--++-+++-------+--+-++------+-----+--+----++++++++-+--+++++--++--+-+-+++---+--+++-+...

output:

Yes
1110010000111010000001100110001111110111001101011111101100000000101100101100111111100010100010011010
0111011110111001000111000110000010101001011010011100010000000010000010110110110111100110111011100111
0011001001100010111001101010111110000000001001000001011101111110011011001100110011110110011101...

result:

ok n=100

Test #8:

score: 0
Accepted
time: 8ms
memory: 22384kb

input:

500
--+-+-+-++-----+++--+-+++-+---+-+-------+++--++++++-+--++--+-+-++++-++++--++--+---++--++----++--+---++-++--+-----+-+---++-++++-+++++++---++-++--+-++++-+----++-+++-+++---+--+++-+--++-++--+++++++-+++--+---+---+-+---++-+-+--+-+++-++-----+++-++-+++-+-++--++++++-+-++-+++---++-+++-++----+--+++----++++...

output:

Yes
11000101000110101011000011011101010111110101100000010100010011001001001011001001101011001111001101110010111011111010001101000000000000011001011100010010011100100010001110110101011111011100001100000010001111101011100100011010010011111100010111100110011000000100001100111011000101101101100011101000...

result:

ok n=500

Test #9:

score: 0
Accepted
time: 584ms
memory: 129192kb

input:

4000
-++-+-+-+--+-++++---+-++------++---+-+++--+++--+++++++---+-++-+++++++----+---+++-++--++---+-++--+----+---+--++-+-+-+-----+-+---++-++--+---+++-++++-+-----++--++-++---++-+--+++-+--+--+-+-++-+++--++---+++-+-+---+++-++-+-++-+-+++---+++---+-+--++---+-+---+--+++--+----+-+--++---+-----+-+--+----+-+++-...

output:

Yes
00010101011111000010100011111010100011011110001100011011110111110010101110011000100111001001000011010101101000101111011111001011010000000101000000101011101111001011110111100010110110001001110111111001011101000001100110101100110100101101001011110110110110011111010010010000111111101111001000101011...

result:

ok n=4000

Test #10:

score: 0
Accepted
time: 537ms
memory: 129208kb

input:

4000
+---+--++-+--++-+-++--+++--++--+++-+-+-+--++++++-++-+-+++-+---++++-+-+++----++-+---++--++--+++-----++---++-+--++++----++--++--+-+-++--+--+++++-+---+++-+++--++++-++-+++++++----+++-----+--++-+++-++-++-+++-+--++++++-+--++--+-+---++--------+-+--++----+-++-+-++---+--++--+-+--+-+++-+--+--++++-++----+...

output:

Yes
00110011010110001110111001100110100010110011000010111011010101000110100011010100010010111110101111111111100011010101011001000111010111010010100101110011101110100111001000010101000101100001101110000000101001010001100110000111010001011101100110110100100111001110110011110011101000100111010111001111...

result:

ok n=4000

Test #11:

score: 0
Accepted
time: 633ms
memory: 129340kb

input:

4000
-+--+------+--+++-++-----++--+-++-++-++-+-+-++++++--++--+-++-+-+++---++-+-+++++-++++++-+-++-++-++-+-++---+-+-------++-+++-++-+-++++-++-+-+-----+----+--+----++++-------++-+--+++----+++++++-+--+-+---+-+++++-+-----++-------++++--+-+-++---++++-++++-++-+++-+-++---+--+---+-++++++--++---+-++++++-+-+--...

output:

Yes
10111100000101101010001100000111001111100110001111110110101101111110110001011110110101010110010101111101101001100001001100110101010111010100000101001100101111000100001100000101010011001011100101100000101101100000101110100111000001100001011111110111001000010011001001101100001110010101010110101001...

result:

ok n=4000

Test #12:

score: 0
Accepted
time: 560ms
memory: 129312kb

input:

4000
+-+-----++++-----++++-+-++-+----+++---++--+---+++-+-++------+-+-++++----+-++++--+-++----+-+---+--+-----+-++--++-+++---+---+++---++-+++---++++---++----+++--+---+---+++-++-+-+-+--+++--++----++-+------+++-++-++--+--+++---+-------++++-+-++--++-+--+------+++++---+---++-++++-+++-++++-+---++-++++----+...

output:

Yes
01110110000111011000001000111111110100001011111011000001010101000011101001100011101010100001000111101010111010000011110100001110111100111000010111110101000001101000101011000101110001000101111001000111010011101011101100011011100101000000101101110111011100111101101011100111001000001100111101110111...

result:

ok n=4000

Test #13:

score: 0
Accepted
time: 609ms
memory: 129532kb

input:

4000
-+++---+-------+-++++-+++-++-+--++----++++++---+---++-++++-+++-++++-+---+--+++-----+-+--++-+--+-++++--+--++-+---+++++++++-+++++++-+++--+-+---++-+-++----+-++--++-++++++++++++++-+++-++-+++-++-++---+---+++-+-+++++++--+-+++-++-+-----+++-++--+++------+++--+++---+--+----++-+--+-+---+--+---+-+-+--++++...

output:

Yes
10001100011101010111111010100100101000010100100011110000000110000111000000111010001111010101001111110010011001101110110111111011000010100000001010011100101110100001110111110110000111011000101010000111110001111011000010011000100010101100111101110001010111010000000000111001010101000100100111010011...

result:

ok n=4000

Test #14:

score: 0
Accepted
time: 481ms
memory: 129236kb

input:

4000
+--+++++--++--+-+++-++-+-+-+-+--++------++++---+++-+-+--+------++-+--++-+-+++-----+-+++++-+------++++-++++-+--+------++--+++++-+-+--+-+++++++++++++++-+--+-+-+---+-+-+++++-++--+-+---++-++--+--+-+++-+-+++++-+--++-+----+++-++-++++-+---+--+-++-++-+-+-+---++-++-+-+----++-++++-----------+++--++++-++-...

output:

Yes
01100000110011010001001010101011001111110001111100100011011110100110101101000111110100000100100110000100000011011111100110000010101101000001000000000101111010111010100100100110101110000101111000001010000010110010111100010010011101110110100100101111110011011010101100100001111111011100001000010010...

result:

ok n=4000

Test #15:

score: 0
Accepted
time: 691ms
memory: 129552kb

input:

4000
---++-++-+-+----++-++++-----------+++--++++-++-++--+-+--+--+-+-++++--++-++--+++++--++--+-+----+-+---++-+++-+--+-++++++++-++---++++-+--+-+++---+-+--+--+-+--+--++++++-+---++++++-++++----+-+-+-++--+---+--+-+++--++++++-+++-+---+--+-----------++-+++--+++++++--++-+++++--+++-+-+++++++++--+---+++--+-+-...

output:

Yes
00011010010100001101111000000000001110011110110110011100100101010111011010001101100110010000001011001111100100101111011101100000111100101100001000010010001100111100010101101111111100001000100001001000010011001111110111011001001100000000001101101101111110011011111001110101111011110010001100010110...

result:

ok n=4000

Test #16:

score: 0
Accepted
time: 1679ms
memory: 129880kb

input:

4000
++-+-------+--++-++-++--++-+++++-++++--+-----++-+--+---++++--+-----++++++---+--+---+------+++-+-----+-+++--+++-+-+-+++-----++---+-+---+-+++++-+--+-++--++-+-----++-+-+---+++-+----++++---++--+-+-++-++-+--++---+++------++-+-++++--+--++-++-+++-++-+--++----++---+-+++-+-+++-++-+--++-++++--++-+-+-+-+-...

output:

Yes
10011000000100110011110001111011011110010000011110010001111001000001111110000001000100000010101000001011100111010101110000011000101000101111101001011001101000001101010001110101001111001110010110101101001110011100000011011111100100110110111011010011000001000100110101110110100110110100110101010110...

result:

ok n=4000

Test #17:

score: 0
Accepted
time: 1679ms
memory: 129644kb

input:

3999
-+-+++---+-----++-++-+++--++-++-----+-++-+---+++-+++-+-+--+++++-++-+++-+---+-----+-++++-+--++-+++--+-++++--+-+-+-+-+----++----+--+---+--+--++-+++--++-+-++--++------+-+--++++--++-+--+----++---+-+---+++++--++-+-++-+++--++---++++-+-+--+-+++++-+-+--+---+---+-+--++++---+-++++-+--++------+++-+++-+-+-...

output:

Yes
10100010101111100110100011001001011101001011100010001011100000010010001011101111101000010110010001101000011010101010110100011101101110110110010101100101001100111111010110000110010110111100101010111000001100101001000110010100001010110100100101011011101110101100001110100001011001111110001000001010...

result:

ok n=3999

Test #18:

score: 0
Accepted
time: 1692ms
memory: 129796kb

input:

3998
--------+++--++-++++--+-+-++---+--++---++-+-++--+----++++---+-++-+-++++++++-+-+++---++++++-+--+-------+--+----++--+--+-+--+++---++-+++---+++-++-+++--++-+----+---+--+-++++--++++-++-+-+---+---+-++----+++++++++++--++--+++++-+++++++-+-+--+-+---+++-++-+++++-+-+-+-+++-+-++-+-+--+-+----+++-+-+--++-+--...

output:

Yes
11111110011000110001110000010110001000110100111101110110000111000100001000101000001010101100001111110001001001011100100000110010101001101011001101110110011110100001100110010111010010100001011111011000100010110001100000001110011001011010111001111011000000010110101001010001000110100000100110000010...

result:

ok n=3998

Test #19:

score: 0
Accepted
time: 1262ms
memory: 129596kb

input:

4000
++-+-------+--++-++-++--++-+++++-++++--+-----++-+--+---++++--+-----++++++---+--+---+------+++-+-----+-+++--+++-+-+-+++-----++---+-+---+-+++++-+--+-++--++-+-----++-+-+---+++-+----++++---++--+-+-++-++-+--++---+++------++-+-++++--+--++-++-+++-++-+--++----++---+-+++-+-+++-++-+--++-++++--++-+-+-+-+-...

output:

No

result:

ok n=4000

Test #20:

score: 0
Accepted
time: 1272ms
memory: 129640kb

input:

3999
-+-+++---+-----++-++-+++--++-++-----+-++-+---+++-+++-+-+--+++++-++-+++-+---+-----+-++++-+--++-+++--+-++++--+-+-+-+-+----++----+--+---+--+--++-+++--++-+-++--++------+-+--++++--++-+--+----++---+-+---+++++--++-+-++-+++--++---++++-+-+--+-+++++-+-+--+---+---+-+--++++---+-++++-+--++------+++-+++-+-+-...

output:

No

result:

ok n=3999

Test #21:

score: 0
Accepted
time: 1274ms
memory: 129836kb

input:

3998
--------+++--++-++++--+-+-++---+--++---++-+-++--+----++++---+-++-+-++++++++-+-+++---++++++-+--+-------+--+----++--+--+-+--+++---++-+++---+++-++-+++--++-+----+---+--+-++++--++++-++-+-+---+---+-++----+++++++++++--++--+++++-+++++++-+-+--+-+---+++-++-+++++-+-+-+-+++-+-++-+-+--+-+----+++-+-+--++-+--...

output:

No

result:

ok n=3998

Test #22:

score: 0
Accepted
time: 1ms
memory: 5708kb

input:

2
+-
--
0 -1
-1 2

output:

No

result:

ok n=2

Test #23:

score: 0
Accepted
time: 0ms
memory: 7800kb

input:

20
--+--------+---++-++
--+++-+----+--++-+++
-+-+-++++---+-+---++
+++-++--++-++-++--++
+---+----+-+++-++++-
----+++++--++----+-+
+-++++----++--++----
++++++-+-+-++-++--+-
-+--+-++++-+-+-+-+-+
--++-+-+--++-++--++-
+---+++-+++-+-+-++-+
+++-+--+++-++-+++-+-
--++--+-++-+--+-+-++
----++-+--+-+-++++-+
--+...

output:

No

result:

ok n=20

Test #24:

score: 0
Accepted
time: 35ms
memory: 129152kb

input:

4000
++---+++-+++-++++++----++-+-+----+-+----+-+-+---+--+-+-----+-+--++++++-++-++++-++----+-++---++++++--+++++--+++--++++-+-+++-++++-+--+++-+++-+--+-+-+++-+-+-+-+++-+-++-++-++++-++-+-++----++++-++++++--+-+---++--+++-++-+-+----+++--+-+--++----+-+++-+-------+++-++--+++-+--+-++----+--------++++--+--+-+...

output:

No

result:

ok n=4000

Test #25:

score: 0
Accepted
time: 435ms
memory: 129144kb

input:

3999
-++--+-+--+++-++--+---++--+---++--+++---++--++---++-+--++---+--++++---+++---++--++-+++++----++-+-+-----++--+++--++--++-+--+-++++-++++--++++-----------+++-+++++++-++--++--+-----++-+-----++++--+++++-+++-+-+--++++-++--++--+--+++-+-+-+-++-++----+---+++++--+++-+---++---+--+-++++-+-++-+-+-+---++-----...

output:

Yes
10011010110001001101110011011100110001110011001110010110011101100001110001110011001000001111001010111110011000110011001011010000100001100001111111111100010000000100110011011111001011111000011000001000101011000010011001101100010101010010011110111000001100010111001110110100001010010101011100111111...

result:

ok n=3999

Test #26:

score: 0
Accepted
time: 469ms
memory: 129160kb

input:

4000
++---+++-+++-++++++----++-+-+----+-+----+-+-+---+--+-+-----+-+--++++++-++-++++-++----+-++---++++++--+++++--+++--++++-+-+++-++++-+--+++-+++-+--+-+-+++-+-+-+-+++-+-++-++-++++-++-+-++----++++-++++++--+-+---++--+++-++-+-+----+++--+-+--++----+-+++-+-------+++-++--+++-+--+-++----+--------++++--+--+-+...

output:

Yes
00111000100010000001111001010111101011110101011101101011111010110000001001000010011110100111000000110000011000110000101000100001011000100010110101000101010100010100100100001001010011110000100000011010111001100010010101111000110101100111101000101111111000100110001011010011110111111110000110110100...

result:

ok n=4000

Test #27:

score: 0
Accepted
time: 674ms
memory: 129480kb

input:

3999
-++--+-+--+++-++--+---++--+---++--+++---++--++---++-+--++---+--++++---+++---++--++-+++++----++-+-+-----++--+++--++--++-+--+-++++-++++--++++-----------+++-+++++++-++--++--+-----++-+-----++++--+++++-+++-+-+--++++-++--++--+--+++-+-+-+-++-++----+---+++++--+++-+---++---+--+-++++-+-++-+-+-+---++-----...

output:

Yes
01100101001110110010001100100011001110001100110001101001100010011110001110001100110111110000110101000001100111001100110100101111011110011110000000000011101111111011001100100000110100000111100111110111010100111101100110010011101010101101100001000111110011101000110001001011110101101010100011000000...

result:

ok n=3999

Test #28:

score: 0
Accepted
time: 671ms
memory: 129196kb

input:

4000
++---+++-+++-++++++----++-+-+----+-+----+-+-+---+--+-+-----+-+--++++++-++-++++-++----+-++---++++++--+++++--+++--++++-+-+++-++++-+--+++-+++-+--+-+-+++-+-+-+-+++-+-++-++-++++-++-+-++----++++-++++++--+-+---++--+++-++-+-+----+++--+-+--++----+-+++-+-------+++-++--+++-+--+-++----+--------++++--+--+-+...

output:

Yes
11000111011101111110000110101000010100001010100010010100000101001111110110111101100001011000111111001111100111001111010111011110100111011101001010111010101011101011011011110110101100001111011111100101000110011101101010000111001010011000010111010000000111011001110100101100001000000001111001001011...

result:

ok n=4000

Extra Test:

score: 0
Extra Test Passed