7.4總結

今天寫了幾道題目

最近,一年級學生馬克西姆學習了科拉茲猜想,但他在講課時沒有太注意,所以他認為猜想中提到了以下過程:

有一個變量 $$$x$$$ 和一個常數 $$$y$$$ 。下面的操作要執行 $$$k$$$ 次:

- 將 $$$x$$$ 增加 $$$1$$$ ,然后
- 當數字 $$$x$$$ 能被 $$$y$$$ 整除時,再除以 $$$y$$$ 。

請注意,這兩個操作都是在一次操作中依次進行的。

例如,如果數字 $$$x = 16$$$ 、 $$$y = 3$$$ 和 $$$k = 2$$$ ,那么經過一次運算后, $$$x$$$ 變成了 $$$17$$$ ,而經過另一次運算后, $$$x$$$ 變成了 $$$2$$$ ,因為加一后, $$$x = 18$$$ 可以被 $$$3$$$ 整除兩次。

鑒于初始值為 $$$x$$$ 、 $$$y$$$ 和 $$$k$$$ ,馬克西姆想知道 $$$x$$$ 的最終值是多少。

思路是先湊到y的倍數,在除y,考慮到時間的問題,所以基于二分的思想設置了一個s每次對自己平方再判斷能不能整除,復雜度從n降到了logn,一直除到a<b,再湊到a等于b,再除就是1,那么就是對剩下的c的部分對(b-1)取余再加一即為答案。

#include<bits/stdc++.h>
#include<algorithm>
#define ll long long
#define max_int 2147483647
#define max_ll 9223372036854775807
using namespace std;
int main()
{ios::sync_with_stdio(false);cin.tie(0);int all;cin>>all;while(all--){ll a,b,c;cin>>a>>b>>c;int bo=1;while(c){ll yu=b-a%b;ll s=b,s2=b*b;if(yu<=c){c-=yu;a+=yu;}else{cout<<a+c<<endl;bo=0;break;}while(a%b==0){s=b;while(a%s==0){s2=s;s*=s;}a/=s2;}if(a<b){if(c>=b-a){c-=b-a;}else{cout<<a+c<<endl;bo=0;break;}if(c==0){cout<<'1'<<endl;bo=0;break;}cout<<c%(b-1)+1<<endl;bo=0;break;}//if(bo) cout<<a<<endl;//else break;}if(bo) cout<<a<<endl;}return 0;
}

關鍵在組合數的拆分和前綴和處理以及取模的問題。

#include<bits/stdc++.h>
#define ll long long
#define max_int 2147483647
#define max_ll 9223372036854775807
using namespace std;
vector<vector<int>>q(2001,vector<int>(2001));
vector<vector<int>>p(2001,vector<int>(2001));
void solve(int k){q[1][1]=1;for(int i=0;i<=2000;++i){q[i][0]=1;}for(int i=2;i<=2000;i++){for(int j=1;j<=i;j++){q[i][j]=(q[i-1][j]+q[i-1][j-1])%k;}}for(int i=2;i<=2000;i++){for(int j=1;j<=i;j++){p[i][j]=p[i-1][j]+p[i][j-1]-p[i-1][j-1];if(q[i][j]==0) p[i][j]+=1;}p[i][i+1]=p[i][i];}
}
int main()
{ios::sync_with_stdio(false);cin.tie(0);int t,k,n,m;cin>>t>>k;solve(k);for(int i=0;i<t;++i){cin>>n>>m;if(m>n) m=n;cout<<p[n][m]<<endl;}return 0;
}

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

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

相關文章

Studying-代碼隨想錄訓練營day29| 134. 加油站、135. 分發糖果、860.檸檬水找零、406.根據身高重建隊列

第29天&#xff0c;貪心part03&#xff0c;快過半了(? ?_?)?&#x1f4aa;&#xff0c;編程語言&#xff1a;C 目錄 134.加油站 135. 分發糖果 860.檸檬水找零 406.根據身高重建隊列 134.加油站 文檔講解&#xff1a;代碼隨想錄加油站 視頻講解&#xff1a;手撕加油站…

《夢醒蝶飛:釋放Excel函數與公式的力量》8.3 COUNTBLANK函數

8.3 COUNTBLANK函數 在數據處理和分析中&#xff0c;我們經常需要識別和統計數據集中的空白單元格。COUNTBLANK函數是Excel中用于統計某個范圍內空白單元格數量的強大工具。 8.3.1 函數簡介 COUNTBLANK函數用于統計指定范圍內的空白單元格數量。這在數據清洗、數據完整性檢查…

MySQL之備份與恢復(四)

備份與恢復 存儲引擎和一致性 3.復制 從備庫中備份最大的好處是可以不干擾主庫&#xff0c;避免在主庫上增加額外的負載。這是一個建立備庫的好理由&#xff0c;即使不需要用它做負載均衡或高可用。如果錢是個問題&#xff0c;也可以把備份用的備庫用于其他用戶&#xff0c;…

【C/C++ new/delete和malloc/free的異同及原理】

new/delete和malloc/free都是用于在C&#xff08;以及C語言在malloc/free的情況下&#xff09;中動態申請和釋放內存的機制&#xff0c;但它們之間存在一些顯著的異同點。以下是對這兩組函數/運算符的異同點的詳細分析&#xff1a; 相同點 目的相同&#xff1a;兩者都用于在堆…

C++編程邏輯講解step by step:類之間的交互

題目 設計一個點類Point&#xff0c;再設計一個矩形類&#xff0c;矩形類使用Point類的兩個坐標點作為矩形的對角頂點。并可以輸出4個坐標值和面積。 分析 1.點類&#xff0c;自然維護的是一個點的坐標&#xff0c; #include < iostream > using namespace std; class …

【C語言基礎知識點】C語言-使用 fgets 讀取包含空格的字符串

使用 fgets 讀取包含空格的字符串 // 使用 fgets 讀取包含空格的字符串 #include <stdio.h> #include <string.h> int main() { char name[100]; printf("Enter your name: "); fgets(name, sizeof(name), stdin); // 移除可能讀取到的換行符 n…

Matlab/simulink三段式電流保護

電流1段仿真波形如下所示 電流2段仿真波形如下所示 電流3段仿真波形如下所示

Centos7安裝Minio筆記

一、Minio概述 Minio是一款開源的對象存儲服務器&#xff0c;可以運行在多種操作系統上&#xff0c;包括Linux、Windows和MacOS等。提供一種簡單、可擴展、高可用的對象存儲解決方案&#xff0c;支持多種數據格式&#xff0c;包括對象、塊和文件等。Minio是一款強大、靈活、可…

WCCI 2024第三彈:忍者表演驚艷全場,盛大晚宴不容錯過

WCCI 2024第三彈&#xff1a;忍者表演驚艷全場&#xff0c;盛大晚宴不容錯過&#xff01; 會議之眼 快訊 會議介紹 IEEE WCCI&#xff08;World Congress on Computational Intelligence&#xff09;2024&#xff0c;即2024年IEEE世界計算智能大會&#xff0c;于6月30日至7月…

【前端知識】一篇速成 建議收藏

HTML基礎概念 正式敲代碼之前呢,我們先來看幾個概念: 0 靜態網頁和動態網頁 靜態網頁: 頁面的內容和顯示效果就基本上不會發生變化了--除非你修改頁面代碼。 動態網頁: 頁面代碼雖然沒有變&#xff0c;但是顯示的內容卻是可以隨著時間、環境或者數據庫操作的結果而發生改變的…

【康復學習--LeetCode每日一題】3099. 哈沙德數

題目&#xff1a; 如果一個整數能夠被其各個數位上的數字之和整除&#xff0c;則稱之為 哈沙德數&#xff08;Harshad number&#xff09;。給你一個整數 x 。如果 x 是 哈沙德數 &#xff0c;則返回 x 各個數位上的數字之和&#xff0c;否則&#xff0c;返回 -1 。 示例 1&a…

【Qt知識】window frame 對窗口坐標的影響

在Qt中&#xff0c;窗口框架&#xff08;Window Frame&#xff09;對Widget的尺寸計算和坐標定位有著直接的影響&#xff0c;這主要是因為窗口框架本身占據了一定的空間&#xff0c;包括標題欄、最小化/最大化/關閉按鈕以及邊框。這部分額外的空間在不同的應用場景下需要被考慮…

windows非白名單exe監控并殺死

需求&#xff1a;孩子在家用電腦上網課&#xff0c;總是悄悄打開游戲或視頻軟件 方案&#xff1a;指定白名單exe&#xff0c;打開非白名單的就自動被殺死&#xff0c;并記錄日志供查看 不知道是否還有更好的結果方案&#xff1f; import psutil import time import logging#…

2024.7.4 刷題總結

2024.7.4 **每日一題** 3086.拾起k個1需要的最少行動次數&#xff0c;在這道題我們可以把0看成空位&#xff0c;第二種操作相當于把一個1移動到和它相鄰的空位上&#xff0c;而第一種操作則是貪心地把和當前下標相鄰的0變成1;當maxchanges較大時&#xff0c;優先使用第一種操作…

第二十條:與抽象類相比,優先選擇接口

要定義多種實現的類型&#xff1a;JAVA有兩種機制&#xff1a;接口和抽象類。這兩種機制都支持為某些實例方法提供實現&#xff0c;但二者有個重要的區別&#xff1a;要實現由抽象類定義的類型&#xff0c;這個類必須是抽象類的子類。因為Java只允許單繼承&#xff0c;對抽象類…

使用SSE實現echarts數據實時更新

區別 SSE 和 WebSocket 原理和實現方式的區別 SSE( Server-Sent Events) SSE 是基于傳統的 HTTP 協議實現的&#xff0c;采用了長輪詢&#xff08;long-polling&#xff09;機制。客戶端通過向服務器發送一個 HTTP 請求&#xff0c;服務器保持連接打開并周期性地向客戶端發送…

內網穿透--利用everything實現目錄映射

免責聲明:本文僅做技術交流與學習... 目錄 來源文章 frp下載網址 為了隱藏: 演示: 1-靶機的everything開啟http服務 2-Linux服務器: 3-靶機windows: 4-最后訪問: 來源文章 滲透測試技巧|Everything的利用 frp下載網址 Release v0.58.1 fatedier/frp GitHub 為了隱…

協程調度模塊

什么是協程和協程調度&#xff1f; 基本概念 協程 協程是一種比線程更輕量級的并發編程結構&#xff0c;它允許在函數執行過程中暫停和恢復執行狀態&#xff0c;從而實現非阻塞式編程。協程又被稱為用戶級線程&#xff0c;這是由于協程包括上下文切換在內的全部執行邏輯都是…

WAIC熱點聚焦|具身智能簡介:AI新浪潮的領跑者

WAIC熱點聚焦|具身智能簡介&#xff1a;AI新浪潮的領跑者 引言 隨著"具身智能"&#xff08;Embodied Intelligence&#xff09;的火熱討論&#xff0c;2024年標志著人機交互新時代的開啟。在大模型技術的推動下&#xff0c;機器人響應語音指令成為現實&#xff0c;…

Linux Rsyslog+LogAnalyzer+MariaDB部署日志服務器

文章目錄 Linux RsyslogLogAnalyzerMariaDB部署日志服務器1 環境準備1.1 服務器端安裝LAMP環境1.2 服務啟動并加入開機啟動1.2.1 Apache1.2.2 MariaDB1.2.3 Php 2 Rsyslog服務端安裝及配置2.1 安裝Rsyslog及Rsyslog連接MySQL的模塊2.2 導入rsyslog-mysql數據庫文件2.3 查看剛導…