ccsp与区域赛都越来越近了,模拟与区域赛题并进,还有一堆作业,有点累,想玩耍,感觉自己有点迷失,算了,还是就这样吧,努力向前
练习赛7,打两个签到题走人,继续刷csp去
B. Hot Air Ballooning
思路:统计不同人用过的气球的方案数,又是个去重问题,又想往set上放,后来发现气球数很少,完全可以数组统计,而气球总组合有限,虽然不大,但强搜可能会感觉tle,加个状压好了,感觉现在自己特别喜欢做状压的题,特别得心应手
#include
#include
#include
#include
#include
#include
J. Colorful Tribune
思路:不过这次的签到题似乎有点过于水了,n行n列n类数每类n个,每行每列不重,有一个特殊元素,找出并复原
这要分两种情况,一个是特殊元素为新加入的元素,二是特殊元素为已有元素,第二种情况相对比较负责,需要重新定位,最后还是一点小细节吧
#include
#include
#include
#include
#include
#include
好了,继续回去刷csp了
补完一道csp的T3大模拟后,还是觉得补一道icpc的题换换吧
I. Suspicious Samples
思路:其实这题的难度不大,但通过这题,对于set的插入、删除和排序又有了新的认识,确实收获不少
set中cmp的编写
这个确实是一个非常关键的地方,第一是书写格式,第二就是一定要确定对于所有满足的情况全部都true;
由于set去、具有去重性,所以一点点小小的疏忽就会导致部分值部莫名其妙地去掉了
struct cmp
{
bool operator()(Pattern a,Pattern b)const
{
if((a.value>b.value)||(a.value==b.value&&a.time
还有就是earse了,这是一个大坑点啊
1.earse完后会导致迭代器失效,所以一定要注意及时重新对迭代器赋值(这题没遇到这个坑点,但确实是常见而又易错的坑点)
2.earse和find结合时,要注意find返回值为末尾时(为找到),千万要特判,不可随意earse
3.一旦set中的元素被earse完后,所有begin(),end()及类似迭代器全部失效,这个算是今天最大的坑点了吧
if(pattern.find(tempdelete)!=pattern.end())
{
pattern.erase(pattern.find(tempdelete));
}
if(pattern.empty())
{
now = 0;
}
else
{
……
}
还有就是界限退出条件的判断这些了吧
#include
#include
#include
#include
#include
#include
文章地址:http://blog.csdn.net/owen_q/article/details/78234317