srm555 div2

从金华回来,虽然创造了学校最好的排名,但是感觉下一场去成都仍然是有些没底,最近刷刷比赛玩玩……

A.简单题,枚举翻的行列,然后判断下最大的就行了。

class XorBoardDivTwo
{
        public:
        int theMax(vector<string> board)
        {
            int i,j,n,m,cnt=0,k,ans,tmp;
            n=board.size();
            m=board[0].size();
            for (i=0;i<n;i++)
            {
                for (j=0;j<m;j++)
                {
                    cnt+=board[i][j]-'0';
                }
            }
            ans=0;
            for (i=0;i<n;i++)
            {
                for (j=0;j<m;j++)
                {
                    tmp=cnt;
                    for (k=0;k<n;k++)
                    {
                        if (k==i) continue;
                        if (board[k][j]=='0') tmp++;
                        else tmp--;
                    }
                    for (k=0;k<m;k++)
                    {
                        if (k==j) continue;
                        if (board[i][k]=='0') tmp++;
                        else tmp--;
                    }
                    ans=max(ans,tmp);
                }
            }
            return ans;
        }
};

B.动态规划,dp[i]表示前面i个数最少可以分解为多少个5的次方数,然后就好转移了,注意下判断5的次方时可能会爆int。

class CuttingBitString
{
        public:

        int dp[1005];

        bool Check(string S,int l,int r)
        {
            long long i,ans=0;
            if (S[l]=='0') return false;
            for (i=l;i<=r;i++)
            {
                ans=ans*2+S[i]-'0';
            }
            if (ans==1) return true;
            if (ans<5) return false;
            while(ans!=1)
            {
                if (ans%5!=0) return false;
                ans/=5;
            }
            return true;
        }

        int getmin(string S)
        {
            int i,j,n;
            n=S.size();
            memset(dp,-1,sizeof(dp));
            dp[0]=0;
            for (i=0;i<n;i++)
            {
                if (dp[i]==-1) continue;
                for (j=i;j<n;j++)
                {
                    if (Check(S,i,j)==true)
                    {
                        if (dp[j+1]==-1) dp[j+1]=dp[i]+1;
                        else dp[j+1]=min(dp[j+1],dp[i]+1);
                    }
                }
            }
            return dp[n];
        }
};

C.动态规划

dp[i][j][k][l]表示前i个位置,有j个泥地,走到第i-1个位置的方法数的奇偶性为k,走到第i个位置的方法数的奇偶性为l的地形数量。

所以,如果第i+1个位置为泥地,那么dp[i+1][j+1][l][0]+=dp[i][j][k][l],因为不能走到泥地,所以奇偶性肯定是偶数。

如果不是泥地,那么dp[i+1][j][l][(k+l)%2]+=dp[i+1][j][k][l],就是类似斐波那契的递推。

注意取模。

class MuddyRoad2
{
        public:

        int dp[600][600][2][2];

        int theCount(int n, int muddyCount)
        {
            int i,j,k,l;
            dp[1][0][1][1]=1;
            dp[2][0][1][1]=1;
            dp[2][1][1][0]=1;
            for (i=2;i<n;i++)
            {
                for (j=0;j<=muddyCount;j++)
                {
                    for (k=0;k<2;k++)
                    {
                        for (l=0;l<2;l++)
                        {
                            dp[i+1][j][l][(k+l)%2]=(dp[i+1][j][l][(k+l)%2]+dp[i][j][k][l])%MOD;//no muddy
                            if (i+1<n) dp[i+1][j+1][l][0]=(dp[i+1][j+1][l][0]+dp[i][j][k][l])%MOD;//muddy
                        }
                    }
                }
            }
            return (dp[n][muddyCount][0][0]+dp[n][muddyCount][1][0])%MOD;
        }
};



### 关于 SACMA SRM01 的中文版资料 SACMA SRM01 是由复合材料学会(Society for the Advancement of Material and Process Engineering, SAMPE)发布的标准之一,主要用于描述短切玻璃纤维增强热固性模塑料的性能测试方法[^1]。该标准通常涉及材料特性、制备工艺以及质量控制等方面的内容。 对于寻找 SACMA SRM01 中文版文档的需求,可以通过以下途径获取: #### 1. 官方渠道 SAMPE 或其中国分会可能提供官方翻译版本的下载服务。建议访问 SAMPE China 的官方网站或其他授权机构网站查询是否有正式的中文译本[^2]。 #### 2. 图书馆资源 部分高校图书馆或行业技术中心会收藏此类国际标准的技术文件及其翻译件。可以联系所在地区的科技图书馆或者通过 Interlibrary Loan (ILL) 请求借阅相关文献[^3]。 #### 3. 商业平台购买 一些商业数据库如 CNKI(知网)、万方数据等可能会收录经过合法授权的标准翻译版本。如果这些平台上未找到具体条目,则需进一步确认是否已发布官方认可的中文版本[^4]。 以下是基于 Python 编写的简单脚本来演示如何自动化搜索某些在线学术资源库中的关键词匹配项: ```python import requests from bs4 import BeautifulSoup def search_sacma(keyword="SACMA SRM01"): url = f"https://example-academic-resource.com/search?q={keyword}" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') results = [] for item in soup.find_all('div', class_='result-item'): title = item.find('h3').text.strip() link = item.find('a')['href'] abstract = item.find('p', class_='abstract').text.strip()[:150]+'...' results.append({ "title": title, "link": link, "abstract": abstract }) return results if __name__ == "__main__": res = search_sacma("SACMA SRM01") for r in res: print(f"{r['title']}\n{r['link']}\nAbstract: {r['abstract']}\n---\n") ``` 请注意以上代码仅为示例用途,在实际应用前应调整目标网址并遵循各站点的服务条款与版权政策[^5]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值