目錄
文章
分類
標籤
AI ai android bettercap Bitbucket C# C++ CDN Certbot ChatGPT Cloudflare Code Runner CPE CPU排程 cron Daphne Django DNS設定 Docker ftp fused-location Git Gmail API GPT hashcat HTML HTTPS hydra kotlin Line Bot Linux location-app Mac macOS MySQL n8n Next.js Nginx nmap NVIDIA OpenAI openssl permissions Python Python Django Python Email Pytorch pytorch PyTorch R2 rclone React Redis Replit SSL streamlit Swap Traefik Ubuntu Unity Vector Vera CPU VM設定 VPS VSCode WebSocket Wi-Fi WordPress Wordpress wordpress-備份 yolo YOLOv9 中位數 代理型 AI 企業市值 伺服器設定 修復 儲存空間 最佳住址 利率 前端 動態生成 即時通訊 卷積神經網路 台股 場景切換 學習 安全性 實作 專案管理 帳號建立 影像分類 後台 性能 惡意軟體 成績查詢 成績管理 技巧 投資 排序 操作系統 效率 教學 本地測試 殖利率 深度學習 清理 滲透測試 演算法 版本控制 物件偵測 神經網路 科技產業 程式解題 程式設計 競程 系統管理 終端機 統計 經濟成長 網域綁定 網站恢復 網頁框架 股票 自動化 自駕車 財務 資料共享 資料庫 資料結構 資訊安全 距離計算 路由 遊戲開發 選單 部署 郵件發送 開發 開發技巧 開發環境 開發者 雲端備份 靜態文件
目錄
目錄
389 字
2 分鐘
UVA 11321 - Sort! Sort!! And Sort!!!
題目來源:UVA 11321 - Sort! Sort!! And Sort!!!
解題思路
本題要求按照特定規則對一系列整數進行排序。規則如下:
- 優先比較餘數:將數字除以 M 的餘數(
num % M)由小到大排序。 - 餘數相同時:
- 奇偶數性質:奇數 (Odd) 優先於偶數 (Even)。
- 皆為奇數:數值較大者排在前面。
- 皆為偶數:數值較小者排在前面。
程式解說
- 模擬 C 語言的餘數運算:Python 的
%運算子在處理負數時與 C/C++ 不同(例如:-10 % 3在 Python 是2,在 C 是-1)。題目要求的是 C 語言風格的餘數,因此需要針對負數做修正。
程式碼
1def sort_key(num):2 r=mod(num,m)3
4 if num%2!=0:5 isOdd=06 last=-num7 else:8 isOdd=19 last=num10
11 return (r,isOdd,last)12
13def mod(x,m):14 mo=x%m15 if x<0 and mo>0:16 mo=x%m-m17 return mo18
19while True:20 n,m=map(int,input().split())21 print(n,m)22 if n==0 and m==0:23 break24 numList=[]25
26 for _ in range(n):27 number=int(input())28 numList.append(number)29
30 numList.sort(key=sort_key)31
32 for i in numList:33 print(i)補充:Python 與 C 的 Modulo 差異
在解這題時,需特別注意 Python 與 C/C++ 對於負數取餘數的定義不同:
- Python:
-10 % 3 = 2(結果符號通常與除數相同) - C/C++:
-10 % 3 = -1(結果符號通常與被除數相同)
為了符合題目的測資要求(題目是基於 C 語言行為),當 n < 0 且計算出的餘數 > 0 時,我們需要減去 m 來調整回 C 語言的結果。
簡單想法:在 Python 中,
%可以想成「加上多少個除數,才能變回正的倍數?」;而此題需要的是「直接對數值截斷」的餘數概念。
UVA 11321 - Sort! Sort!! And Sort!!!
/posts/uva-11321---sort-sort-and-sort/ 部分資訊可能已經過時
目錄
文章
分類
標籤
AI ai android bettercap Bitbucket C# C++ CDN Certbot ChatGPT Cloudflare Code Runner CPE CPU排程 cron Daphne Django DNS設定 Docker ftp fused-location Git Gmail API GPT hashcat HTML HTTPS hydra kotlin Line Bot Linux location-app Mac macOS MySQL n8n Next.js Nginx nmap NVIDIA OpenAI openssl permissions Python Python Django Python Email Pytorch pytorch PyTorch R2 rclone React Redis Replit SSL streamlit Swap Traefik Ubuntu Unity Vector Vera CPU VM設定 VPS VSCode WebSocket Wi-Fi WordPress Wordpress wordpress-備份 yolo YOLOv9 中位數 代理型 AI 企業市值 伺服器設定 修復 儲存空間 最佳住址 利率 前端 動態生成 即時通訊 卷積神經網路 台股 場景切換 學習 安全性 實作 專案管理 帳號建立 影像分類 後台 性能 惡意軟體 成績查詢 成績管理 技巧 投資 排序 操作系統 效率 教學 本地測試 殖利率 深度學習 清理 滲透測試 演算法 版本控制 物件偵測 神經網路 科技產業 程式解題 程式設計 競程 系統管理 終端機 統計 經濟成長 網域綁定 網站恢復 網頁框架 股票 自動化 自駕車 財務 資料共享 資料庫 資料結構 資訊安全 距離計算 路由 遊戲開發 選單 部署 郵件發送 開發 開發技巧 開發環境 開發者 雲端備份 靜態文件
目錄