首页 > 其他分享 >ACM预备队-week12

ACM预备队-week12

时间:2023-01-23 12:44:27浏览次数:47  
标签:cnt week12 cout int 质数 cin ACM tie 预备队

1.宝物筛选

题目链接:P1776 宝物筛选 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

其实就是多重背包的二进制优化问题,转化成简单的01背包即可,滚动数组也可以去优化

注意的是告诉的是最大载重(背包问题中的最大体积),所以应该是减去w[i]而不是v[i]

 1 #include <bits/stdc++.h>
 2 using namespace std;//多重背包的二进制优化 
 3 const int N=1e6+10; 
 4 int v[N],w[N],f[N];
 5 int n,m;
 6 
 7 signed main()
 8 {
 9     ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
10     cin>>n>>m;
11     int cnt=0;
12     for(int i=1;i<=n;i++)
13     {
14         int a,b,s;
15         cin>>a>>b>>s;
16         int k=1;//组别里面的个数
17         while(k<=s)
18         {
19             cnt++;//组别先增加 
20             v[cnt]=a*k;//整体体积 
21             w[cnt]=b*k;//整体价值 
22             s-=k;//s要减小 
23             k*=2;//组别里面的个数以二进制增加 
24         }
25         if(s>0)
26         {
27             cnt++;
28             v[cnt]=a*s;
29             w[cnt]=b*s;
30         }
31     }
32     n=cnt;//枚举次数正式由个数变成组别数
33     //01背包优化
34     for(int i=1;i<=n;i++)
35         for(int j=m;j>=w[i];j--)//此时m是载重,所以应该是>=w[i],开始我写成v[i]了qwq 
36             f[j]=max(f[j],f[j-w[i]]+v[i]);
37     
38     cout<<f[m]<<endl;
39     return 0;
40 }

2.尴尬的数字

题目链接:P1555 尴尬的数字 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

本题考的就是模拟,就是将一个字符串转化成二进制数,然后把这个二进制数每一位都取反,再转化成三进制数,如果转化出的数和原来给的三进制数只差一位,则就是这个数,输出即可,否则循环

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 //本题的思路就是遍历二进制中哪个数字错了,然后再将其转化为三进制数,如果仅有一个数字不同,则说明就是这个数 
 4 signed main()
 5 {
 6     ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
 7     string s1,s2;
 8     cin>>s1>>s2;
 9     for(int i=0;i<s1.size();i++)
10     {
11         long long ans=0;
12         if(s1[i]=='1')s1[i]='0';
13         else s1[i]='1';//先一个数字一个数字的改变 
14         for(int j=0;j<s1.size();j++)
15         {
16             ans*=2;
17             ans+=(s1[j]-'0');
18         }//此时ans存的就是串1的二进制数,接下来要把这个二进制数转化为三进制数用于一一对比 
19         int pos=s2.size()-1,cnt=0,flag=1;//cnt代表计数转化后不同的数字有几个,超过两个及以上,直接否定,flag表示判断,用于最后输出 
20         long long temp=ans;//备份一份
21         while(pos>=0)
22         {
23             if((temp%3)!=s2[pos]-'0')cnt++;
24             pos--;
25             temp/=3;
26             if(cnt==2)
27             {
28                 flag=0;
29                 break;
30             }
31          } 
32          if(flag==1)cout<<ans<<endl;
33          if(s1[i]=='1')s1[i]='0';
34          else s1[i]='1';//还原 
35          
36     }
37     return 0;
38 } 

3.【传智杯】小卡和质数

题目链接:P8845 [传智杯 #4 初赛] 小卡和质数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

本题其实是个脑筋急转弯,因为给T组数据,每次输入一个a,b表示第a个质数和第b个质数的异或,这些数在二进制中异或如果是1的话,只能是二进制数最后一位数不同,其余都相同,也就是相差2^0=1,所以相差为1的质数(一奇一偶)只有2和3,分别为第1和2个质数

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int t,a,b;
 4 signed main()
 5 {
 6     ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
 7     cin>>t;
 8     while(t--)
 9     {
10         cin>>a>>b;
11         if((a==2&&b==1)||(a==1&&b==2))cout<<"Yes"<<endl;
12         else cout<<"No"<<endl;
13     }
14     return 0;
15 } 

标签:cnt,week12,cout,int,质数,cin,ACM,tie,预备队
From: https://www.cnblogs.com/Zac-saodiseng/p/17065110.html

相关文章

  • 寒假acm训练第三周
      这个题就是简单的数学思维如果这个数组里全部都是10的倍数那直接计数达到n就直接出0如果有其它不是10的倍数那找出最小的直接减去就可以了下面就是代码#include......
  • arch linux pacman 启动失败`GLIBC_2.34' not found
    pacman报错:pacman:/usr/lib/libc.so.6:version`GLIBC_2.34'notfound(requiredbypacman)解决方法:1下载二进制包:去https://aur.archlinux.org/packages/pacma......
  • dremio DACModule 模块简单说明
    DACModule核心是进行dac一个帮助类,进行一些依赖的处理,方便在DACDaemon中使用,同时官方为了支持自定义基于动态类创建进行了扩展(DremioDaemon处理的)接口定义参考类图......
  • dremio DACModule 模块加载简单说明
    dremioDACModule主要是模块加载初始化以及组合,是一个比较重要的模式,同时也支持基于配置进行加载(有点很多了,后边简单介绍)加载机制支持配置加载可以通过dremio运行配......
  • 阿里云云边一体容器架构创新论文被云计算顶会 ACM SoCC 录用
    近日,由阿里云撰写的关于KOLE创新论文被ACMSoCC国际会议长文录用。ACMSymposiumonCloudComputing(以下简称SoCC)是由美国计算机协会主办、聚焦云计算技术的一项学......
  • ACM预备队-week11(综合)
    1.汤姆斯的天堂梦题目链接:P1796汤姆斯的天堂梦-洛谷|计算机科学教育新生态(luogu.com.cn)此题类似于数字三角形,要求从顶点到三角形最后一行的最大距离和,dp1#in......
  • 2020-2021 ACM-ICPC Latin American Regional
    K-Keylogger就是你可以显然的发现一个\(O(n^3)\)级别的动态规划。设\(dp_{i,j}\)表示第\(i\)位密码,现在按的键是\(j\)的答案。然后发现矩阵的每一行是单调递......
  • ACM入坑小作文
       今日份开通博客,希望在博客可以完整记录自己的ACM进阶之路吧。   先来补一篇入坑小作文,刚刚步入大一,在某种机缘巧合之下,就看到了学校ACM算法协会的宣传。一向对......
  • SYUCT acm第八次限时训练题解
    SYUCTacm第八次限时训练题解MakeitBeautiful题目大意code#include<bits/stdc++.h>usingnamespacestd;constintN=100;inta[N];intb[N];voidsolve()......
  • 又一创新!阿里云 Serverless 调度论文被云计算顶会 ACM SoCC 收录
    关注阿里巴巴中间件公众号,后台回复关键词【FC】查看ACMSoCC录用论文!近日,阿里云函数计算产品团队撰写的关于Serverless调度的创新性论文被ACMSoCC国际会议长文录用......