【ZOJ 3844】Easy Task】的更多相关文章

题意 每次把序列中最大的数a的一个和最小的数b的一个变成a-b.求最后是否能使序列里的数全部相同,能则输出这个相同的数. 分析 一定是有解的,不断减少最大数的个数,最大数减少为0个时,就是减少了不同数字的个数,最后就只剩一种数字了. 可以直接暴力模拟. 代码 #include<cstdio> int ok(int a[],int n) { int i; for(i=1; i<n; i++) if(a[i]!=a[i+1])break; return i==n; } int main()…
[题目链接] http://poj.org/problem?id=3740 [算法] Dancing Links算法解精确覆盖问题 详见这篇文章 : https://www.cnblogs.com/grenet/p/3145800.html [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #incl…
[题目链接]:http://codeforces.com/contest/239/problem/B [题意] 给你一个长度为n的字符串,只包括'<">'以及数字0到9; 给你q个区间(n和q都小于等于100) 然后让你在这q个区间里面做一些操作; 有一个指针int,指向当前操作的位置,还有一个方向的int; 表示这个指针它要移动的方向; 每次对一个位置进行操作; 如果该位置是数字; 则把这个数字输出,然后这个数字递减1; 如果数字小于0了,则把它删掉; 然后把指针往方向int的方向…
[链接] 我是链接,点我呀:) [题意] 让你将一个字符串删掉一些字符. 使得字符串中不包含子序列"hard" 删掉每个字符的代价已知为ai 让你求出代价最小的方法. [题解] 设dp[i][j]表示前i个字符,已经和"hard"匹配前j个的最小花费. 对于dp[i][j] 对s[i+1]分类讨论 ①s[i+1]不删 那么有两种情况 第一种:s[i+1]和"hard"的第j+1个字符匹配 第二种:..xxxxx不匹配 则分别转移到dp[i+1][…
[链接] 我是链接,点我呀:) [题意] [题解] 递归一会. 会发现最后肯定是0,1一直循环. 开始循环之后就直接返回结果就好. [代码] #include <bits/stdc++.h> #define ll long long #define rep1(i,a,b) for (int i = a;i <= b;i++) #define rep2(i,a,b) for (int i = a;i >= b;i--) using namespace std; const int N…
[链接] 我是链接,点我呀:) [题意] [题解] 按照两个区间的排列方式 我们可以分成以下几种情况 会发现这两个区间的作用 最多只能把两段连续不同的区间变为相同. 那么写个for处理出连续不相同的一段的个数cnt. 根据上面的排列方式. 算出每个cnt对应的答案即可. 别忘了有些情况可以乘2. [代码] #include <bits/stdc++.h> #define ll long long #define rep1(i,a,b) for (int i = a;i <= b;i++)…
[链接] 我是链接,点我呀:) [题意] [题解] 统计a中0的个数cnt0 然后m减去cnt0 因为这cnt0个0是一定会取到的. 如果m==0了 那么直接找到数组中的最小值mi 输出mi-1就好 否则 找到剩余的前m个非0的数字 设第m个非0数字为a[i],则在i+1..n中再取最小值mi 则输出前m个非0数字和+mi-1 m<0的话,impossible n==m的话,Richman [代码] #include <bits/stdc++.h> #define ll long lon…
[链接] 我是链接,点我呀:) [题意] [题解] 二分最后的最大抵御值mid. 然后对于每个蘑菇. 都能算出来它要浇水几次mid/ai 然后如果第i个蘑菇没浇水达到要求次数. 就在i和i+1之间来回走动(注意改变第i+1个蘑菇的状态) 直到满足每个蘑菇的浇水需求为止. 注意如果到了最后一个蘑菇所在的位置之后. 如果这个蘑菇已经不需要浇水了 那么就没有必要来到第n个位置.直接在n-1位置停下来就ok了 [代码] #include <bits/stdc++.h> #define ll long…
[链接] 我是链接,点我呀:) [题意] [题解] /* for a[1] from 1~9 1*1=1 2*1=2 3*1=3 1*2=2 2*2=4 3*2=6 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 1*5=5 2*5=10 3*5=15 1*6=6 2*6=12 3*6=18 1*7=7 2*7=14 3*7=21 1*8=8 2*8=16 3*8=24 1*9=9 2*9=18 3*9=27 use "c[i]" or "c[i]c…
原题链接:788E - New task Description 游行寺家里人们的发色多种多样,有基佬紫.原谅绿.少女粉.高级黑.相簿白等. 日向彼方:吾令人观其气,气成五彩,此天子气也. 琉璃:我们是不是可以组个五人战队了? 游行寺家的n个人排成一排.第i个人的发色是Ai. 能组成战队的条件是: 那五人假设是第a,b,c,d,e人(),需要满足  中间的三人称为有头者,最旁边俩人称为学姐. 根据字面意思,有头者一定要有头,学姐可以无头.反正就是b,c,d这三人一定要有头. 有着恶趣味的琉璃每次…