国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

qduoj 79 翻轉游戲(開關問題)

2019-11-06 06:06:44
字體:
來源:轉載
供稿:網(wǎng)友

題目地址:點擊打開鏈接

思路:

普通的方法從左到右枚舉翻轉n^2復雜度會超時。

用白書上的維護記錄區(qū)間的翻轉次數(shù),可以達到nlogn復雜度。

代碼:

#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn = 1e5+5;char str[maxn];int k, m, a[maxn], f[maxn];bool solve(){    memset(f, 0, sizeof(f));    int res = 0, sum = 0, len = strlen(str);    for(int i = 0; i < len; i++)        a[i] = str[i]-'0';    for(int i = 0; i+k-1 < len; i++)    {        if((a[i]+sum)%2)        {            res++;            f[i] = 1;            sum++;        }        if(i-k+1 >= 0)            sum -= f[i-k+1];    }    for(int i = len-k+1; i < len; i++)    {        if((a[i]+sum)%2) return 0;        if(i-k+1 >= 0)            sum -= f[i-k+1];    }    return res <= m;}int main(void){    int t;    cin >> t;    while(t--)    {        scanf("%d%d", &k, &m);        scanf(" %s", str);        puts(solve() ? "YES" : "NO");    }    return 0;}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平江县| 兴化市| 黑龙江省| 丘北县| 商南县| 禹州市| 青龙| 闸北区| 盐边县| 南充市| 玉树县| 海口市| 福建省| 来安县| 嘉善县| 宿州市| 新和县| 清镇市| 琼海市| 壶关县| 色达县| 长垣县| 六安市| 秦安县| 宝山区| 遂川县| 基隆市| 本溪市| 揭西县| 宁波市| 五家渠市| 五常市| 通渭县| 宝应县| 惠安县| 兴隆县| 开封市| 北流市| 化隆| 梁山县| 红安县|