http://acm.hdu.edu.cn/showproblem.php?pid=3003
3003 pupu——队友ac.
用到了a^bmod m 的公式。
3006a number of set—— ac.
这是一道背包题,还没学,比赛是并不是用背包的方法做的,但也用到了0 1的处理方法,还是有这种思想在吧。看了别人的代码,有用到或运算,感觉很巧妙。贴下代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
bool hash[17000];
int num[17000];
void main()
{
int n,m;
int nnum;
int k;
int i,j;
int sum;
int a;
while(scanf("%d%d",&n,&m)!=EOF)
{
nnum=0;
memset(hash,0,sizeof(hash));
for(i=0;i<n;i++)
{
scanf("%d",&k);
sum=0;
for(j=0;j<k;j++)
{
scanf("%d",&a);
sum+=pow(2,a-1);//把二进制换成十进制来哈希
}
if(hash[sum])
continue;
num[nnum]=sum;
hash[sum]=1;
nnum++;
for(j=0;j<nnum;j++)
{
a=sum|num[j];//用十进制来或,求两个集合的并
if(hash[a]==0)
{
num[nnum]=a;
nnum++;
hash[a]=1;
}
}
}
printf("%d/n",nnum);
}
}
3007 Buried memory——ac.
几何题。就是求能覆盖N个点的最小圆。具体代码见几何部分吧。
3008 Warcraft——待ac.
动态规划题。比赛时在用搜索做,感觉会TLE,结果是MLE。现在思路是知道了,要把它写一下吧。
这次比赛实际上只比了4小时,因为后来断电了,但这跟高中初中是不一样,要那时断电可以停止考试,那肯定是乐死了,但比赛时就不一样,题目写好了但不能交 ,也不知道对不对,很难受的,这次也算比的还好吧,如果能把最后一题写出,就是被能写的都写出来了,最近比赛都还不错,不会像刚开始时 每次垫底了,有时还是挺好的,嘿嘿,继续加油!