Hat’s Words
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 9620 Accepted Submission(s): 3438
Problem Description
A hat’s word is a ...
分类:
其他好文 时间:
2015-07-20 14:33:04
阅读次数:
172
题意:给出了一堆科目,必须要完成的时间和完成某科所需要的时间,超过一天扣一分,求最少要扣的分数。
思路:刚开始一直以为是贪心,却一直贪不出来~~ 看了别人的题解,才顿悟啊~ 状压DP,用二进制来表示某个科目的完成状态。
比如样例一: 用111表示三科都完成了,101表示第一科和第三科完成了,这样就很easy~\(≧▽≦)/~啦啦啦。
for(int i=1;i
for(int j=n-1;...
分类:
其他好文 时间:
2015-07-19 12:00:32
阅读次数:
118
欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院
Just a Hook
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 20889 Accepted Submission(s): 1044...
分类:
其他好文 时间:
2015-07-07 19:35:58
阅读次数:
128
I Hate It
Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 47272 Accepted Submission(s): 18507
Problem Description
很多学校流行一种比较的习惯。老师们很...
分类:
其他好文 时间:
2015-07-01 12:27:09
阅读次数:
113
题意:一个村子有n个房子,他们用n-1条路连接起来,每两个房子之间的距离为w,有m次询问,每次询问房子a,b之间的距离是多少。
分析:最近公共祖先问题,建一棵树,求出每一点i到树根的距离d[i],每次询问a,b之间的距离=d[a]+d[b]-2*d[LCA(a,b)];LCA(a,b)是a,b的最近公共祖先。
#pragma comment(linker, "/STACK:1024000000...
分类:
编程语言 时间:
2015-06-29 14:52:31
阅读次数:
164
题意:给定一组数,q次查询(每次区间l~r),输出从a[l] 到a[r] 存在多少对逆序数。
分析:dp[l][r]表示从l~r的逆序数对数。首先算好dp[1][1..N]。
然后2~N枚举,每次计算从i开始的逆序对。dp[i][j]比dp[i-1][j]少了a[i-1]这个数的贡献。设一个累加器cnt。枚举i~N,若a[i-1]和a[j]构成逆序数,则cnt++;
最后dp[i][j]=d...
分类:
其他好文 时间:
2015-06-28 09:56:18
阅读次数:
124
敌兵布阵
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 55172 Accepted Submission(s): 23126
Problem Description
C国的死对头A国这段时间正在进行军事演习,所以...
分类:
编程语言 时间:
2015-06-28 09:55:14
阅读次数:
135
题意:求数组中两个不同元素使得两元素和%p最大。
分析:
1、序列中的数可能超过P,将所有数读入后进行模P操作。
2、将取模后的所有数从小到大排序,现在所有数都是小于P且排好序的。
3、假设任意选了两个数X和Y,则0≤X+Y≤2P-2。若X+Y
#include
#include
using namespace std;
__int64 a[100005];
int main()
{...
分类:
其他好文 时间:
2015-06-27 18:26:46
阅读次数:
173
分析:最坏情况下,在1到m间,最多只要猜log2(m)+1(取整)次,所以=>m=2^n-1。即猜n次,猜到的最大数为2^n-1.也可认为,在数1到2^n-1间,都可以在n次内猜出来。
#include
#include
using namespace std;
int main()
{
int T,n;
scanf("%d",&T);
while(T--)
{
printf("...
分类:
其他好文 时间:
2015-06-26 16:20:30
阅读次数:
130
分析:dp[i][0]表示到第i个数成绩为负时的最大积个数,dp[i][1]表示到第i个数成绩为正时的最大积个数。
#include
using namespace std;
#define N 10005
#define max(a,b) ((a)>(b)?(a):(b))
int dp[N][2];
int main()
{
int T,t,i,n,sum,x;
t=1;
sc...
分类:
其他好文 时间:
2015-06-26 15:03:43
阅读次数:
93