最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

全球要闻:POJ 1185 炮兵阵地

来源:博客园


(资料图片)

感觉上很难,确实自己做一开始没有想到是dp问题,同时没有进行剪枝,同时有一些准备工作没有做好

  • 没有提前将每一行的信息转成数字信息(做题经验不足)
  • 没有提前把每行可能的情况抽取出来
  • 没有想到其实确实是一个dp问题(其实一开始的贪心思路有些不太对)

判断贪心和dp问题的一个方法可以是看数据范围

#include #include #include using namespace std;int dp[105][65][65];int cnt=0;int str[65];int sum[65];int map[110];char s[110][110];bool check(int x)//判断这个排列是否为普通的合法序列{    if(x&(x<<1)) return false;    if(x&(x<<2)) return false;    return true;}int getSum(int x)//当前状态的炮兵数目{    int ans=0;    while(x>0)    {        if(x&1) ans++;        x>>=1;    }    return ans;}void before_hand(int mid)//预处理出所有的可能合法炮兵状态,cnt统计状态数{    for(int i=0;i<(1<> a;            if(a=="H") map[i]|=(1<                 

关键词: 记录状态 准备工作 数字信息