分析:两个人都足够聪明,因此每个阶段都拿最大的。dp[sa][ea][sb][eb]分别表示区间1的开始为sa,结束为ea,区间2的开始为sb,结束为eb时能拿到的最大值。之后分别从四个方向上拿,是个搜索的过程。
#include
using namespace std;
int dp[25][25][25][25]; //dp[sa][ea][sb][eb],分别表示区间1的开始,结束,区...
分类:
其他好文 时间:
2015-05-20 14:50:55
阅读次数:
139
题意:如果一个整数符合下面3个条件之一,那么我们就说这个整数和7有关——
1、整数中某一位是7;
2、整数的每一位加起来的和是7的整数倍;
3、这个整数是7的整数倍;
现在问题来了:吉哥想知道在一定区间内和7无关的数字的平方和。
分析:数位DP,关键内容如下。
(pre0+i)%7用于处理各个位数之和时候为7的倍数,(pre1*10+i)%7用于处理这个数是否为7的倍数。
#...
分类:
其他好文 时间:
2015-05-20 09:53:00
阅读次数:
134
分析:这题貌似还可以用线段树做,这里使用memset函数很方便的实现。
#include
using namespace std;
int main()
{
int a[1445],i,n,hh,mm;
int s,t,count;
while(scanf("%d",&n)==1)
{
memset(a,-1,sizeof(a));
for(i=0;i<n;i++)
{
...
分类:
其他好文 时间:
2015-05-20 09:41:47
阅读次数:
112
分析:t单位时间后i的位置将变化到(i+t)%n位置上,下标i从0开始,之后快速幂完成。
#include
using namespace std;
__int64 f_pow(__int64 a,__int64 b,__int64 mod)
{
__int64 s=1;
while(b>0)
{
if(b&1) s=s*a%mod;
a=a*a%mod;
b>>=1;
...
分类:
其他好文 时间:
2015-05-20 00:32:44
阅读次数:
112
分析:简单的完全背包(因为每种食物可以不止取一个)。
#include
using namespace std;
int dp[100005];
int v[102],w[102];
int main()
{
int n,m,i,j;
while(cin>>n)
{
for(i=0;i>w[i]>>v[i];
cin>>m;
memset(d...
分类:
其他好文 时间:
2015-05-19 21:03:45
阅读次数:
145
分析:
建图:每个任务和每一天分别看做一个点,添加源和汇点。源点和每个任务连一条边,每天边的容量为完成对应任务所需处理次数。若第i个任务能够在Si至Ei天处理,则由该任务向这些天分别连一条边,容量为1,表示此任务每天只能被处理一次。最后,每一天分别连一条边到汇点,容量为机器数M,即每天可以处理M个任务。若求出的最大流等于所有任务需要处理的次数之和,说明能完成任务;否则,不能。
#inc...
分类:
编程语言 时间:
2015-05-19 16:36:17
阅读次数:
139
分析:贪心,首先找到最右边的第一个左边界和最左边的第一个右边界。之后在判断是否有一个及一个以上的区间在这两个值之间,若有则能找到符合题意的三个区间,否则不能。
注意:这里利用的unsigned int的自然溢出决解了取模问题;第二个是一定生成完数据后在交换Li和Ri的值,这里被坑残了。
#include
using namespace std;
//__int64 mod=429496729...
分类:
其他好文 时间:
2015-05-18 23:03:05
阅读次数:
174
分析:dp[i][j][k]表示长度为i的串含j个相邻的1并且以k为结尾的种数。状态转移方程:dp[i][j][0]=dp[i-1][j][0]+dp[i-1][j][1];dp[i][j][1]=dp[i-1][j][0]+dp[i-1][j-1][1];边界dp[1][0][0]=dp[1][0][1]=1;。
#include
using namespace std;
int dp[10...
分类:
其他好文 时间:
2015-05-18 16:44:06
阅读次数:
148
How Many Tables
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 17049 Accepted Submission(s): 8349
Problem Description
Today is Igna...
分类:
其他好文 时间:
2015-05-18 09:13:15
阅读次数:
132
1.1.1#include #include int main(int argc, const char * argv[]){ int a,b; while (scanf("%d%d",&a,&b) != EOF) { printf("%d\n",a+b); }...
分类:
其他好文 时间:
2015-05-17 18:24:24
阅读次数:
106