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

觅知网免费素材图库镇江网站建设优化

觅知网免费素材图库,镇江网站建设优化,长春专业企业网站建设价格,网站搭建好显示建设中开学了#xff0c;感觉没时间打cf了#xff0c;上课听不懂#xff0c;而且一直在忙转班的事情~~ 下周就要回学校了开心 昨天卡C题太久了#xff0c;一直在想lcm的性质#xff0c;还好最后回头了#xff0c;当成构造题做了#xff0c;瞎搞了搞就出来了#xff0c;然后看…开学了感觉没时间打cf了上课听不懂而且一直在忙转班的事情~~ 下周就要回学校了开心 昨天卡C题太久了一直在想lcm的性质还好最后回头了当成构造题做了瞎搞了搞就出来了然后看D由于没有看榜就硬着头皮看D发下没思路看下榜单发下都在搞E然后转头搞E忘了完全平方的性质就GG了~ E1. Square-free division (easy version) 不难知道xp1α1p2α2…pnαnxp_1^{\alpha_1}p_2^{\alpha_2}\dots p_n^{\alpha_n}xp1α1​​p2α2​​…pnαn​​yp1β1p2β2…pmβmyp_1^{\beta_1}p_2^{\beta_2}\dots p_m^{\beta_m}yp1β1​​p2β2​​…pmβm​​ 设 axp1α1%2p2α2%2…pnαn%2a_xp_1^{\alpha_1\%2}p_2^{\alpha_2\%2}\dots p_n^{\alpha_n\%2}ax​p1α1​%2​p2α2​%2​…pnαn​%2​ayp1β1%2p2β2%2…pmβm%2a_yp_1^{\beta_1\%2}p_2^{\beta_2\%2}\dots p_m^{\beta_m\%2}ay​p1β1​%2​p2β2​%2​…pmβm​%2​ 如果xyxyxy是完全平方数一定有axaya_xa_yax​ay​于是开个数组贪心的选即可。 时间复杂度O(namax⁡n)O(n\sqrt{a_{\max}}n)O(namax​​n) 裸的分解质因数TLE一个点加了个优化质数直接不分解然后过了其实感觉记忆化一下应该也能过。 // 1996 ms #includeiostream using namespace std; constexpr int N200010; int n,k,a[N],pre[10000010]; int prime[10000010],cnt; bool is[10000010]; void init(int n)//筛质数 {for(int i2;in;i){if(!is[i]) prime[cnt]i;for(int j1;prime[j]n/i;j){is[prime[j]*i]1;if(i%prime[j]0) break;}} } int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int T1;cinT;init(10000000);while(T--){cinnk;for(int i1;in;i){a[i]1;int x;cinx;if(!is[x]) {a[i]x;continue;}//小优化for(int j2;jx/j;j)if(x%j0){int s0;while(x%j0) x/j,s;if(s1) a[i]*j; }if(x1) a[i]*x;}int last0,res0;for(int i1;in;i){if(pre[a[i]]last){for(int jlast;ji;j) pre[a[j]]0;res;lasti;}pre[a[i]]i;}for(int i1;in;i) pre[a[i]]0;coutres\n;}return 0; }其实感觉上述代码仍然能被卡TEL时间复杂度主要在求xxx的axa_xax​上学习了Heltion的代码发下可以在筛法中做文章 设axf(x)a_xf(x)ax​f(x) 如果fi%pj0f_i\%p_j0fi​%pj​0说明fif_ifi​里面有一个pjp_jpj​fpj×if_{p_j×i}fpj​×i​则有两个pjp_jpj​于是fpj×ifi/pjf_{p_j×i}f_i/p_jfpj​×i​fi​/pj​ 如果fi%pj≠0f_i\%p_j\ne0fi​%pj​​0说明fif_ifi​里面没有pjp_jpj​于是fpj×ifi×pjf_{p_j×i}f_i×p_jfpj​×i​fi​×pj​ 按照上述递推即可。 时间复杂度O(amax⁡n)O(a_{\max}n)O(amax​n) //311 ms #includeiostream using namespace std; constexpr int N200010; int n,k; int a[N]; int pre[10000010]; int prime[10000010],cnt; bool is[10000010]; int f[10000010]; void init(int n) {f[1]1;for(int i2;in;i){if(!is[i]) prime[cnt]i,f[i]i;for(int j1;prime[j]n/i;j){is[prime[j]*i]1;if(f[i]%prime[j]) f[i*prime[j]]f[i]*prime[j];elsef[i*prime[j]]f[i]/prime[j];if(i%prime[j]0) break;}} } int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int T1;cinT;init(10000000);while(T--){cinnk;for(int i1;in;i){a[i]1;int x;cinx;a[i]f[x];}int last0,res0;for(int i1;in;i){if(pre[a[i]]last){for(int jlast;ji;j) pre[a[j]]0;res;lasti;}pre[a[i]]i;}for(int i1;in;i) pre[a[i]]0;coutres\n;}return 0; } E2. Square-free division (hard version) 10710^7107以内质数个数是664579664579664579不难得出只要你改变一个数一定能改变成一个数和任意数组的数的积不是完全平方数。 共有26645792^{664579}2664579选择只要挑一个变成当前没有的即可。 设计dp 状态表示fi,jf_{i,j}fi,j​表示考虑前iii个数操作了jjj次分成的最小段数。 状态转移考虑第iii个数和哪些数划分到一组。 比如最后一组是[L,i][L,i][L,i]表明数组[L,i][L,i][L,i]的数两两相乘不是完全平方数根据第一问转化后即[L,i][L,i][L,i]的数都不相同。只需要求出需要操作多少次能使得[L,i][L,i][L,i]数都不相同即可。 一个常用的trick就是记录这个数前一个和它相同数的位置prei\text{pre}_iprei​不难得出[L,i][L,i][L,i]操作次数为∑jLi1(L≤prej≤i)−1\sum_{jL}^{i}1(L \leq \text{pre}_j\leq i)-1∑jLi​1(L≤prej​≤i)−1即可转移。 下面代码效仿Heltion的trick非常巧妙用一个set维pre数组。最后一组为[x1,i][x1,i][x1,i]然后枚举操作次数转移即可。注意边界情况也就是最后一组为[1,i][1,i][1,i]的情况。 #includeset #includeiostream #includealgorithm using namespace std; constexpr int N200010; int n,k; int a[N]; int pre[N]; int mp[10000010]; int prime[10000010],cnt; bool is[10000010]; int f[10000010]; int dp[N][22]; void init(int n) {f[1]1;for(int i2;in;i){if(!is[i]) prime[cnt]i,f[i]i;for(int j1;prime[j]n/i;j){is[prime[j]*i]1;if(f[i]%prime[j]) f[i*prime[j]]f[i]*prime[j];elsef[i*prime[j]]f[i]/prime[j];if(i%prime[j]0) break;}} } int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int T1;cinT;init(10000000);while(T--){cinnk;for(int i1;in;i){cina[i];a[i]f[a[i]];}for(int i1;in;i){pre[i]mp[a[i]];mp[a[i]]i;}for(int i1;in;i) for(int j0;jk;j) dp[i][j]n;dp[0][0]0;setint,greaterint s;for(int i1;in;i){if(pre[i]) s.insert(pre[i]);for(int j0;jk;j) dp[i][j]dp[i-1][j]1;int c0;for(int x:s){if(ck) break;for(int jc;jk;j)dp[i][j]min(dp[i][j],dp[x][j-c]1);c;}if((int)s.size()k) dp[i][s.size()]1;}cout*min_element(dp[n],dp[n]1k)\n;for(int i1;in;i) mp[a[i]]0;}return 0; }
http://www.pierceye.com/news/188827/

相关文章:

  • 网站建设总体情况网站设计宁波
  • 西宁做网站_君博示范360建筑网会员
  • 做DJ网站违法吗汕头seo网站推广
  • 上海网站建设网站宁波网站模板哪家性价比高
  • 珠海专业做网站制作做网站网站的代理算网站罪吗
  • 建设局网站简介通信建设网站
  • php做网站用什么开发工具大专软件技术工资一般多少
  • 网站建设服务承诺wordpress 博客园
  • seo综合查询站长工具关键词全网营销案例
  • 深圳专业做网站设计政务服务网站建设性建议
  • 做暧免费观看网站哪个网站可以给图片做链接
  • wordpress最好的主题东莞债务优化
  • 全国网站建设大赛网店网站设计
  • 学网站建设需要学多久wordpress火车头插件
  • wordpress 网站实例中国纪检监察报app下载
  • 网站链接dw怎么做营销推广方法
  • 觅知网 大而全的高质量素材站开发手机网站用什么好
  • 建设一个广告联盟的网站医院网站设计与实现
  • 公司网站备案必须是企业信息么网站搭建好有什么内容可以修改
  • 弄网站赚钱吗电影网站怎么做要多少钱
  • 做优化网站能以量取胜么好素材网站
  • wordpress主题网站江苏建设工程教育网
  • 网站制作 客户刁难做宠物网站赚钱吗
  • 网站突然不收录了如何形容一个网站做的好
  • 怎么建网站教程视频做网站跟推广哪家公司好
  • 怎么做网站报告四平网站公司
  • 飞扬动力网站建设支付网站建设要求
  • 达美网站建设廊坊seo扣费
  • 好享购物官方网站购物网页制作与网站开发从入门到精通
  • 坪山网站建设哪家便宜系部网站建设研究方案