当前位置: 首页 > news >正文

陕西网站建设的目的外贸大型门户网站制作

陕西网站建设的目的,外贸大型门户网站制作,开发微信公众平台,建网站公司销售A题考虑贪心#xff0c;要使使用的砖头越多#xff0c;每块转的k应尽可能小#xff0c;最小取2#xff0c;最后可能多出来#xff0c;多出来的就是最后一块k3#xff0c;我们一行内用到的砖头就是 m 2 \frac{m}{2} 2m​下取整#xff0c;然后乘以行数就是答案。 #inclu…A题考虑贪心要使使用的砖头越多每块转的k应尽可能小最小取2最后可能多出来多出来的就是最后一块k3我们一行内用到的砖头就是 m 2 \frac{m}{2} 2m​下取整然后乘以行数就是答案。 #include bits/stdc.h #define rep(i,a,b) for(int i (a); i (b); i) #define fep(i,a,b) for(int i (a); i (b); --i) #define ls p1 #define rs p1|1 #define PII pairint, int #define ll long long #define ull unsigned long long #define db double #define endl \n #define debug(a) cout#aaendl; #define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define INF 0x3f3f3f3f #define x first #define y second #define int long long using namespace std;const int N2e510; vectorints[N]; int u[N],ans[N];void solve() {int n,m;cinnm;coutm/2*nendl; } signed main() {IOS // freopen(1.in, r, stdin);int t;cint;while(t--)solve();return 0; }B题就是猜的一个排序 对于 i , a [ i ] b [ i ] 越大我们就考虑将他往后放 , 有一点贪心的思想吧如果 a [ i ] b [ i ] 越大放在前面产生的逆序对可能就越多所以我们考虑将大的往后放 对于i,a[i]b[i]越大我们就考虑将他往后放,有一点贪心的思想吧如果a[i]b[i]越大放在前面产生的逆序对可能就越多所以我们考虑将大的往后放 对于i,a[i]b[i]越大我们就考虑将他往后放,有一点贪心的思想吧如果a[i]b[i]越大放在前面产生的逆序对可能就越多所以我们考虑将大的往后放 b题wa了两发第一次是排序的时候弄反了。 第二次写排序函数的时候降序就写 不要写 写了 r e 了 不要写写了 re了 不要写写了re了 #include bits/stdc.h #define rep(i,a,b) for(int i (a); i (b); i) #define fep(i,a,b) for(int i (a); i (b); --i) #define ls p1 #define rs p1|1 #define PII pairint, int #define ll long long #define ull unsigned long long #define db double #define endl \n #define debug(a) cout#aaendl; #define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define INF 0x3f3f3f3f #define x first #define y second //#define int long long using namespace std;const int N2e510; struct node {int a,b,sum; }kk[N]; bool cmp(node t1,node t2) {return t1.sumt2.sum; } void solve() {int n;cinn;rep(i,1,n) cinkk[i].a;rep(i,1,n) cinkk[i].b;rep(i,1,n) kk[i].sumkk[i].akk[i].b;sort(kk1,kk1n,cmp);rep(i,1,n) coutkk[i].a ;coutendl;rep(i,1,n) coutkk[i].b ;coutendl;} signed main() {IOS // freopen(1.in, r, stdin);int t;cint;while(t--)solve();return 0; }c题是位运算贪心 一般1e18很可能就是 l o g log log的算法涉及到异或这些很可能就是要考虑每一位的影响。 这道题就是需要考虑每一位对答案的贡献这种贡献法也是很常用的思考方式。 赛时有框架了但是贪心的细节没考虑好没过。 大佬指导的是位运算很多时候需要考虑贪心因为位与位之间独立。 我们考虑如果ab两个数的二进制下第i位 当 a i b i 时无论 x 取何值这一位对答案的贡献都是 0 , 我们就然 x 的这一位为 0 因为 x 要小于 r x 后面会有用 当a_ib_i时无论x取何值这一位对答案的贡献都是0,我们就然x的这一位为0因为x要小于rx后面会有用 当ai​bi​时无论x取何值这一位对答案的贡献都是0,我们就然x的这一位为0因为x要小于rx后面会有用 当 a i ̸ b i 时这时看 x i 1 是否能然答案变小如果可以就让 x i 1 否则就然 x i 0 当a_i\notb_i时这时看x_i1是否能然答案变小如果可以就让x_i1否则就然x_i0 当ai​bi​时这时看xi​1是否能然答案变小如果可以就让xi​1否则就然xi​0 x i 1 需要建立在 x r 的前提下 x_i1需要建立在xr的前提下 xi​1需要建立在xr的前提下 #include bits/stdc.h #define rep(i,a,b) for(int i (a); i (b); i) #define fep(i,a,b) for(int i (a); i (b); --i) #define ls p1 #define rs p1|1 #define PII pairint, int #define ll long long #define ull unsigned long long #define db double #define endl \n #define debug(a) cout#aaendl; #define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define INF 0x3f3f3f3f #define x first #define y second #define int long long using namespace std;const int N64;int work(int x,int i) {return x(1lli); }void solve() {int a,b,r;cinabr;if(ab) swap(a,b);int ans0;fep(i,60,0){if(work(a,i)work(b,i)) continue;if(r(1lli)) {int kkabs(ans(work(a,i)^(1lli))-(work(b,i)^(1lli)));if(kkabs(ans)) {anskk;r-(1lli); } else ans(work(a,i)^0)-(work(b,i)^0); }else ans(work(a,i)^0)-(work(b,i)^0); }coutabs(ans)endl; } signed main() {IOS // freopen(1.in, r, stdin);int t;cint;while(t--)solve();return 0; } D 二分大根堆优化dp 首先需要二分答案在b站的一个up看的讲解b站的up讲解 这种题目就是可以通过二分答案然后变成简单的check。 接下来需要考虑如何check由于我们删数的位置不确定同时我们需要求的是在满足一定条件下的最优化问题这时我们可以考虑一下dp f [ i ] 表示处理好的前 i 个前 i 个的区间间隔均 m i d f[i]表示处理好的前i个前i个的区间间隔均mid f[i]表示处理好的前i个前i个的区间间隔均mid 并且删除第 i 个元素所有删除元素的和的最小值 并且删除第i个元素所有删除元素的和的最小值 并且删除第i个元素所有删除元素的和的最小值 考虑转移 : f [ i ] f [ k ] a [ i ] , 其中 k 是满足区间和小于 m i d 的 f 中的最小值 考虑转移:f[i]f[k]a[i],其中k是满足区间和小于mid的f中的最小值 考虑转移:f[i]f[k]a[i],其中k是满足区间和小于mid的f中的最小值 我们可以看到枚举状态 O ( n ) 枚举转移也需要 O ( n ) , 这样复杂度就是 O ( n 2 l o g n ) 我们可以看到枚举状态O(n)枚举转移也需要O(n),这样复杂度就是O(n^2logn) 我们可以看到枚举状态O(n)枚举转移也需要O(n),这样复杂度就是O(n2logn) 考虑优化可以用优先队列维护和双指针维护满足条件的区间以及区间内的 f 的最小值 考虑优化可以用优先队列维护和双指针维护满足条件的区间以及区间内的f的最小值 考虑优化可以用优先队列维护和双指针维护满足条件的区间以及区间内的f的最小值 由于状态的设计所以状态需要计算到 n 1 , 因为 n 有删或不删两种情况这是一个常用的小技巧 由于状态的设计所以状态需要计算到n1,因为n有删或不删两种情况这是一个常用的小技巧 由于状态的设计所以状态需要计算到n1,因为n有删或不删两种情况这是一个常用的小技巧 #include bits/stdc.h #define int long long #define rep(i,a,b) for(int i (a); i (b); i) #define fep(i,a,b) for(int i (a); i (b); --i) #define ls p1 #define rs p1|1 #define PII pairint, int #define pll pairlong long, long long #define ll long long #define ull unsigned long long #define db double #define endl \n #define debug(a) cout#aaendl; #define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define INF 0x3f3f3f3f #define x first #define y secondusing namespace std;const int N1e510; int n,a[N],f[N];bool check(int x) {priority_queuepll,vectorpll,greaterpllq;int l0,ss0;q.push({0,0});rep(i,1,n1){while(lissx) {ss-a[l];l;}while(q.size()q.top().yl-1) q.pop();f[i]q.top().xa[i];q.push({f[i],i});ssa[i]; }return f[n1]x; }void solve() {cinn;rep(i,1,n) cina[i];a[n1]0;int l0,r1e15;while(lr){int mid(lr)1;if(check(mid)) rmid;else lmid1;}coutlendl;rep(i,0,n1) f[i]0; } signed main() {IOS // freopen(1.in, r, stdin);int t;cint;while(t--)solve();return 0; }
http://www.hkea.cn/news/14307253/

相关文章:

  • 兴宁市网站建设wordpress禁止某ip
  • 和狗狗做电影网站wordpress百度云加速插件
  • 和布克赛尔网站建设电子商务网站系统设计
  • 广州市番禺区住房和建设局网站锦州做网站的公司
  • 昆明企业网站设计外贸网站建设公司
  • 做网站设计的论文中摘要怎么写上海市建设协会网站
  • 个人做网站 用什么语言网站正能量晚上在线观看视频
  • 建行移动门户网站建设网站需要用到哪些软件
  • 奖励软件下载网站合肥公司注册
  • 天津制作个人建站麻将app软件开发
  • 户外旅游网站模板杭州seo价格
  • 优化自己的网站品牌广告策划方案
  • 冶金建设网站公众号开发商咨询电话
  • 番禺网站建设优化网站建设推广小王熊掌号
  • 怎样用自己的服务器建设网站怎样做网站
  • 民治做网站公司网站开发都用什么
  • 用服务器建立网站教程建设银行益阳市分行桃江支行网站
  • 餐饮门户网站源码个人网页设计师
  • 成都品牌设计网站天津营销网站建设公司
  • 怎样做国外能看到的网站设计师服务平台可以下载
  • 本地推广找哪些网站网站制作软件dw
  • 东阳网站建设网站全是乱码
  • 站酷官网首页wordpress阅读类主题
  • asp做网站搜索上海频道做网站怎么样
  • 网站建设中备案有域名没有服务器怎么做网站
  • 路由器 东莞网站建设网站qq访客 原理
  • 蓝色企业网站wordpress能做什么
  • 湖南网站建设工作室网站建设信息发布
  • 哈尔滨免费网站制作国家住房和城乡建设网站
  • 网站 产品图片 尺寸长沙中小企业网站建设