zoukankan      html  css  js  c++  java
  • D. Challenges in school №41 模拟

    题目链接

    解题思路:判断形成目标状态所须的最小,最大时间,与标准时间对比,在其区间内,则可行,然后模拟

     1 #include<bits/sdtc++.h>
     2 using namespace std;
     3 #define ll long long 
     4 int n, k;
     5 ll maxk = 0ll, mink = 0ll, d;
     6 char str[3050];
     7 vector<int> v[300050];
     8 void solve()
     9 {
    10     int p = 0, p2 = 0, kk = mink;
    11     while(kk<k){
    12         cout << "1 " << v[p][p2] << endl;
    13         p2++;
    14         if(p2==v[p].size()){
    15             p2=0;
    16             p++;
    17         }
    18         else kk++;
    19     }
    20     cout << v[p].size() - p2;
    21     for(int i = p2; i < v[p].size(); i++)
    22         cout << " " << v[p][i];
    23     cout << endl;
    24     while(p<mink){
    25         cout << v[p].size();
    26         for(int i = 0; i < v[p].size(); i++)
    27             cout << " " << v[p][i];
    28         cout << endl;
    29         p++;
    30     }
    31 }
    32 void check(int p){
    33     for(int i = 1; i < n; ){
    34         if(str[i] == 'R' && str[i+1] == 'L'){
    35             str[i] = 'L';
    36             str[i+1] = 'R';
    37             v[p].push_back(i);
    38             i += 2;
    39         }
    40         else i++;
    41     }
    42 }
    43 int main()
    44 {
    45     ios::sync_with_stdio(false);
    46     cin.tie(0); cout.tie(0);
    47     cin >> n >> k >> (str+1);
    48     check(0);
    49     while(v[mink].size()&&mink<=k){
    50         maxk += v[mink].size();
    51         mink++;
    52         check(mink);
    53     }
    54     if(mink<=k&&k<=maxk) solve();
    55     else cout << -1 << endl;
    56 }
  • 相关阅读:
    函数的有用信息,装饰器 day12
    函数名、闭包、装饰器 day11
    函数的动态参数与命名空间 day10
    函数 day9
    集合 day8
    文件操作 day8
    基础数据类型补充,及capy daty7
    day7 回顾
    编码补充 daty 6
    字典的增删改查 daty 5
  • 原文地址:https://www.cnblogs.com/jrjxt/p/12676483.html
Copyright © 2011-2022 走看看