Day 4:牛客周賽Round 91

好久沒寫了,問題還蠻多的。聽說這次是苯環哥哥出題
F題 小苯的因子查詢
思路

考慮求因子個數,用質因數分解;奇數因子只需要去掉質數為2的情況,用除法。
這里有個比較妙的細節是,提前處理出數字x的最小質因數,當然不處理也沒關系。

我出的bug

  • 忘記逆元怎么求了,甚至連名字都忘記了,想了一會才想起來
  • 1e6的讀入,忘記禁用同步和解除綁定了
  • const int mod=998244353; 少了const
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define ft first
#define sd second
const int mod=998244353;
const int N=1e6+10;
int prime[N],kk,vis[N];
pair<int,int> ans[N];//記錄第i個的奇數個數,因子個數
int total[N];//質因子為i的次冪int power(int x,int y)
{int res=1;while(y){if(y&1) res=res*x%mod;y/=2;x=x*x%mod;}return res%mod;
}
int inv(int y) {return power(y,mod-2);}
void Prime()
{for(int i=2;i<N;i++){if(vis[i]==0) prime[++kk]=i,vis[i]=kk;for(int j=i+i;j<N;j+=i){if(vis[j]==0) vis[j]=kk;//vis記錄最小質因數的編號,編號從1開始}}
}
void init()
{Prime();ans[1].ft=ans[1].sd=1;for(int i=2;i<N;i++)//遞推,更新下一個ans{int j=vis[i],tmp=i;while(j>0){int cnt=0;while(tmp%prime[j]==0)cnt++,tmp/=prime[j];if(total[prime[j]]==0)//增加一個質因子的情況{ans[i].sd=ans[i-1].sd*(cnt+1)%mod;}else //已有質因子的情況{ans[i].sd=ans[i-1].sd*inv(total[prime[j]]+1)%mod*(total[prime[j]]+cnt+1)%mod;}total[prime[j]]+=cnt;j=vis[tmp];}ans[i].ft=ans[i].sd*inv(total[2]+1)%mod;}
}
int solve(int n)
{int x=ans[n].ft;int y=ans[n].sd;int inv_y=inv(y);//cout<<x<<" "<<y<<" ";return x*inv_y%mod;}
signed main()
{//ios::sync_with_stdio(false);cin.tie(0);init();int n,t;ios::sync_with_stdio(0);cin.tie(0);cin>>t;while(t--){cin>>n;cout<<solve(n)<<" ";}return 0;
}

一般大佬的Coding:

#include <bits/stdc++.h>
using namespace std;
using u32 = unsigned int;
using i64 = long long;
using u64 = unsigned long long;
#define int long long
#define rep(i, a, b) for (int (i) = (a); (i) <= (b); ++i)
#define rep2(i, a, b) for (int (i) = (a); (i) >= (b); --i)
#define debug(x) std::cout << #x << " : " << x << "\n";
#define debug2(x,y) std::cout << #x << " : " << x << " " << #y << " : " << y << "\n";
const int MOD = 998244353;
const int N = 1e6 + 10;
long long power(long long a, int b, int p) {long long res = 1;while (b) {if (b & 1) res = res * a % p;b >>= 1;a = a * a % p;}return res;
}
long long inv(int x) { return power(x, MOD - 2, MOD); }
int fac[N];
void init() {fac[0] = 0;for (int i = 1; i <= N - 1; i++) {fac[i] = fac[i - 1] + __builtin_ctz(i);}
}
void solve()
{int n; cin >> n;cout << inv(fac[n] + 1) << " ";
}
signed main()
{std::ios::sync_with_stdio(false);// cout<<std::fixed<<std::setprecision(10);std::cin.tie(0);init();int t__ = 1;cin >> t__;while (t__--)solve();return 0;
}

D題 數組4.0
思路

排序分段,段和段之間只需一條邊即可連接;段和單點之間需要再考慮單點內部連接。

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int n,m;
int b[N],cnt[N];
int ans=0;void solve()
{if(n==1){cout<<0<<"\n";return ;}//只有一個數sort(b,b+n);m=unique(b,b+n)-b;if(m==1){cout<<n-1<<"\n";return ;}//只有一個元素ans=0;bool p=0;// p==1時,說明這是一段的左邊或者內部,而不是單點for(int i=1;i<m;i++){if(b[i]-b[i-1]==1){p=1;continue;}ans++;if(p==0) ans+=cnt[b[i-1]]-1; //說明上一段結束,此時也結束,說明上個點是單點p=0;}if(p==0)ans+=cnt[b[m-1]]-1;//單點cout<<ans<<"\n";}
signed main()
{int t;cin>>t;while(t--){for(int i=0;i<N;i++)cnt[i]=0;cin>>n;for(int i=0;i<n;i++)cin>>b[i],cnt[b[i]]++;solve();}return 0;
}
/*
1
7
1 2 4 4 6 7 8 
*/

小苯的逆序對和
思路

簡單的思維題,直覺雙指針,然后把自己繞進去,最后畫座多峰的山就好理解了。
l 找峰頂,mx記錄當前最高的峰頂,j作為指針,遍歷完滿足當前低于最高峰頂mx的最大答案,否則繼續更新l

#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int n,m;
int b[N],cnt[N];
int ans=0;void solve()
{int l=0,r=n-1;ans=0;int mx=b[l];while(l<r){while(l<r&&b[l]<b[l+1])l++;//左邊找這一段最大的,山峰if(l==r)break;mx=max(mx,b[l]);//此時最高的山峰int j=l+1;while(j<=r&&mx>b[j]){ans=max(mx+b[j],ans);j++;}l=j;}cout<<ans<<'\n';
}
signed main()
{int t;cin>>t;while(t--){cin>>n;for(int i=0;i<n;i++)cin>>b[i];solve();}return 0;
}
/*
1
7
1 2 4 4 6 7 8 
*/

B題 token

前綴和,檢查兩遍才發現忘記開long long了,代碼就不展示了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/79509.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/79509.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/79509.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用直覺理解不等式

問題是這個&#xff1a; 題目 探究 ∣ max ? b { q 1 ( z , b ) } ? max ? b { q 2 ( z , b ) } ∣ ≤ max ? b ∣ q 1 ( z , b ) ? q 2 ( z , b ) ∣ |\max_b\{q_1(z,b)\}-\max_b\{q_2(z,b)\}|\le\max_b|q_1(z,b)-q_2(z,b)| ∣maxb?{q1?(z,b)}?maxb?{q2?(z,b)}∣≤…

惡心的win11更新DIY 設置win11更新為100年

?打開注冊表編輯器?&#xff1a;按下Win R鍵&#xff0c;輸入regedit&#xff0c;然后按回車打開注冊表編輯器。?12?導航到指定路徑?&#xff1a;在注冊表編輯器中&#xff0c;依次展開HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings?新建DWORD值?&…

嵌入式驅動學習

時鐘 定義 周期型的0、1信號 時鐘信號由“心臟”時鐘源產生&#xff0c;通過“動脈”時鐘樹傳播到整個芯片中。 SYSCLK系統時鐘&#xff0c;由HSI、HSE、PLLCLK三選一。 HCLK是AHB總線時鐘&#xff0c; PCLK是APB總線時鐘。 使用某個外設&#xff0c;必須要先使能該外設時鐘系統…

Java:從入門到精通,你的編程之旅

Java&#xff0c;一門歷久彌新的編程語言&#xff0c;自誕生以來就以其跨平臺性、面向對象、穩定性和安全性等特性&#xff0c;在企業級應用開發領域占據著舉足輕重的地位。無論你是初學者還是經驗豐富的開發者&#xff0c;Java 都能為你提供強大的工具和廣闊的舞臺。 為什么選…

Linux:深入理解數據鏈路層

實際上一臺主機中&#xff0c;報文并沒有通過網絡層直接發送出去&#xff0c;而是交給了自己的下一層協議——數據鏈路層&#xff01;&#xff01; 一、理解數據鏈路層 網絡層交付給鏈路層之前&#xff0c;會先做決策再行動&#xff08;會先查一下路由表&#xff0c;看看目標網…

Python基本語法(類和實例)

類和實例 類和對象是面向對象編程的兩個主要方面。類創建一個新類型&#xff0c;而對象是這個 類的實例&#xff0c;類使用class關鍵字創建。類的域和方法被列在一個縮進塊中&#xff0c;一般函數 也可以被叫作方法。 &#xff08;1&#xff09;類的變量&#xff1a;甴一個類…

2025 年如何使用 Pycharm、Vscode 進行樹莓派 Respberry Pi Pico 編程開發詳細教程(更新中)

micropython 概述 micropython 官方網站&#xff1a;https://www.micropython.org/ 安裝 Micropython 支持固件 樹莓派 Pico 安裝 Micropython 支持固件 下載地址&#xff1a;https://www.raspberrypi.com/documentation/microcontrollers/ 選擇 MicroPython 下載 RPI_PIC…

flink rocksdb狀態說明

文章目錄 1.默認情況2.flink中的狀態3.RocksDB4.對比情況5.使用6.RocksDB架構7.參考文章8.總結提示:以下主要考慮flink 狀態永久存儲 rocksdb情況,做一些簡單說明 1.默認情況 當flink使用rocksdb存儲狀態時。無論是永久存儲還是臨時存儲都可能會落盤寫文件(如果沒有配置存儲…

安裝SDL和FFmpeg

1、先記錄SDL 這玩意還是有一點講究的 具體步驟&#xff1a; 下載 SDL包&#xff1a; 鏈接&#xff1a;https://www.libsdl.org/release/SDL2-2.0.14.tar.gz 可以用迅雷&#xff0c;下載完之后&#xff0c; 解壓&#xff1a; tar -zxvf SDL2-2.0.14.tar.gz進入安裝目錄 cd …

2022年408真題及答案

2022年計算機408真題 2022年計算機408答案 2022 408真題下載鏈接 2022 408答案下載鏈接

Spring AI聊天模型API:輕松構建智能聊天交互

Spring AI聊天模型API&#xff1a;輕松構建智能聊天交互 前言 在當今數字化時代&#xff0c;智能聊天功能已成為眾多應用程序提升用戶體驗、增強交互性的關鍵要素。Spring AI的聊天模型API為開發者提供了一條便捷通道&#xff0c;能夠將強大的AI驅動的聊天完成功能無縫集成到…

Softmax回歸與單層感知機對比

(1) 輸出形式 Softmax回歸 輸出是一個概率分布&#xff0c;通過Softmax函數將線性得分轉換為概率&#xff1a; 其中 KK 是類別數&#xff0c;模型同時計算所有類別的概率。 單層感知機 輸出是二分類的硬決策&#xff08;如0/1或1&#xff09;&#xff1a; 無概率解釋&#x…

【React】Hooks 解鎖外部狀態安全訂閱 useSyncExternalStore 應用與最佳實踐

一、背景 useSyncExternalStore 是 React 18 引入的一個 Hook&#xff1b;用于從外部存儲&#xff08;例如狀態管理庫、瀏覽器 API 等&#xff09;獲取狀態并在組件中同步顯示。這對于需要跟蹤外部狀態的應用非常有用。 二、場景 訂閱外部 store 例如(redux,mobx,Zustand,jo…

Dify框架面試內容整理-如何評估基于Dify開發的AI應用的效果?

評估基于 Dify 開發的 AI 應用效果,需要從 用戶體驗、技術性能 與 業務價值 三個層面綜合衡量。以下是詳細的評估框架,涵蓋三個關鍵點: 用戶反饋與滿意度

Linux 系統下VS Code python環境配置!

Anaconda安裝&#xff1a; 在 Linux 系統中安裝下載好的 Anaconda3-2024.10-1-Linux-x86_64.sh&#xff0c;可按以下步驟操作&#xff1a; 1. 賦予安裝腳本執行權限 打開終端&#xff0c;切換到安裝包所在目錄&#xff08;假設在 software 文件夾中&#xff09;&#xff0c;…

項目實戰-基于信號處理與SVM機器學習的聲音情感識別系統

目錄 一.背景描述 二.理論部分 三.程序設計 編程思路 流程圖 1.信號部分 創建數據 generate_samples.py 頭文件 生成函數 generate_emotion_sample 傳入參數 存儲路徑 生成參數 創建基礎正弦波信號 調制基礎正弦波 對于憤怒可以增加噪聲 歸一化信號 存儲 主函…

虛幻引擎作者采訪

1萬小時編程_嗶哩嗶哩_bilibili https://www.youtube.com/watch?v477qF6QNSvc 提姆斯溫尼是一位傳奇性的視頻游戲程序員&#xff0c;Epic Games 的創始人兼首席執行官。 該公司開發了虛幻引擎、堡壘之夜、戰爭機器、虛幻競技場等許多開創性和有影響力的視頻游戲。 他哥哥…

如何限制pod 進程/線程數量?

在 Kubernetes 中限制 Pod 的 進程數&#xff08;PID 數量&#xff09; 和 線程數&#xff0c;需要結合 Linux cgroup 控制 和 容器運行時配置。以下是具體方法和示例&#xff1a; 一、限制進程數&#xff08;PID 數量&#xff09; 1. 通過 pids cgroup 控制器限制 原理&…

使用 Hugging Face 鏡像站快速下載大模型

在國內使用 Hugging Face 下載模型時&#xff0c;經常遇到連接慢、斷點續傳失敗等問題。本文記錄一個穩定、快速下載模型的命令行腳本&#xff0c;并支持設置模型緩存路徑和目標目錄&#xff0c;方便后續統一管理。 1. 設置 Hugging Face 鏡像站 為了提升國內訪問速度&#xf…

原語的使用

1、什么是原語&#xff1f;&#xff1f; 原語&#xff08; primitive &#xff09;&#xff0c;是FPGA開發環境所提供的一系列邏輯功能單元。往往與FPGA芯片的廠家精密相連&#xff0c;不同廠家的原語往往不能通用。 2、需要使用原語的情況 一般來說&#xff0c;在進行HDL cod…