Codeforces #208 div2前两题及思维风暴(三)
tmp;
int main()
{
int n,i,j;
while(cin>>n)
{
a="<3"; //先加在最前面
for(i=0;i
{
cin>>tmp;
a=a+tmp;
a+="<3"; //每一串后面都加一个<3
}
//现在a串是最短长度的解
cin>>p;
int t=0,len=a.length();
for(i=0;i
{
if(t==len) break;
if(p[i]==a[t])
t++;
}
if(t==len) puts("yes");
else puts("no");
}
return 0;
}
//1684 ms
然后算法设计老师讲的一个题目蛮有意思的,给你两根长短不同,粗细不均匀的绳子,我们仅仅知道每根绳子烧完需要1h,问怎么才能使得两根绳子都烧完,且刚好用时45min.
think........
用火机先点燃一根绳子的两头和另一根绳子的一头。这样用时30min,之后将剩下的绳子的另一头点燃。
还有一个题目是关于公倍数的,求解%3=a,%5=b,%7=c,这样的最小的正整数t,我们假设t=(5*7*s1)*a+(3*7*s2)*b+(3*5*s3)*c.我们只需要保证5*7*s1%3=1即可,因此s1取2,依次s2=1,s3=1。我们可以将他的一个解找到,然后+lcm(3,5,7)*k就是他的通解了,就可以求解了。