用asp.net开发网站的优势微信如何建公众号怎么创建
news/
2025/9/22 21:29:20/
文章来源:
用asp.net开发网站的优势,微信如何建公众号怎么创建,wordpress 连载插件,门户系统设计刁钻的顾客 发布时间: 2017年7月3日 10:23 时间限制: 3000ms 内存限制: 128M 描述 XJTU校园内新开一家商店#xff0c;可是来了一位刁钻的顾客要购买商品A和商品B。关于商品的质量#xff0c;共有n个评分#xff0c;每个评分即一个整数来表示该产品在某一方面的质量。商… 刁钻的顾客 发布时间: 2017年7月3日 10:23 时间限制: 3000ms 内存限制: 128M 描述 XJTU校园内新开一家商店可是来了一位刁钻的顾客要购买商品A和商品B。关于商品的质量共有n个评分每个评分即一个整数来表示该产品在某一方面的质量。商品A的评分表示为a1~an商品B表示为b1~bn。 令店老板为难的是这个刁钻的顾客要求商品A的总评分比商品B的总评分多2的正整数幂这样他才会购买。好在店老板可以任意定义每个评分的重要性也就是赋予这个评分一个权值所有商品采用同一套权值。重要性只有三档不重要、一般和重要它们的权值分别是135。商品的总评分就是它们在n个方面的评分乘以相应权重之和。店老板能否找到一组权重使得商品A的总评分比商品B的总评分多2的正整数幂 对于第一组样例权重{1,5}是一个可行解此时A总分为22B总分为622-616。 输入 多组数据。 第一行是一个整数n商品评分的数量。 第二行是n个整数a1~an表示商品A的评分。 第三行是n个整数b1~bn表示商品B的评分。 其中 2n20 1ai,bi10000000 输出 如果可以找到一组满足要求的权重输出“Yes”否则输出“No”不包括引号。 样例输入1 复制 2
2 4
1 1
2
3 2
3 1 样例输出1 Yes
No 对于这道题目直接暴力枚举时间复杂度是O(3^(20))是会爆掉的而如果我们采用折半枚举地方法时间复杂度只有O(3^20 * LOG(3^20))
详细解释bais白书上有例子。直接附AC代码 #include iostream
#include cstdio
#include algorithm
using namespace std;
typedef long long LL;
LL a[22],b[22],mi[33];
LL sa[int(1e7)];
LL sb[int(1e7)];
int cnta;
int cntb;
int n;
LL pow(LL x,LL p){LL ans 1;while(p){if(p 1){ans * x;}x * x;p 1;}return ans;
}
void sp(LL arr[],int cnt,int l,int r){int n r - l 1;for(int S 0;S pow(3,n);S){int tmpS S;int ans 0;for(int i 0;i n;i){int w tmpS%3;ans (2*w1)*(a[i l] - b[i l]);tmpS / 3;}arr[cnt] ans;}
}
int main(){mi[0] 1;for(int i 1;i 30;i){mi[i] mi[i-1] * 2;}while(~scanf(%d,n)){cnta cntb 0;for(int i 0;i n;i){scanf(%lld,a[i]);}for(int i 0;i n;i){scanf(%lld,b[i]);}sp(sa,cnta,0,n/2);sp(sb,cntb,n/21,n-1);sort(sb,sb cntb);for(int i 0 ;i cnta;i){for(int t 1;t 30;t){LL t_mi mi[t];int f 0;if((sa[i] t_mi cntb 0 )|| *lower_bound(sb,sbcntb,t_mi - sa[i]) t_mi - sa[i]){f 1;}if(f){puts(Yes);goto end;}}}puts(No);end:;}return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910434.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!