51nod 1103 N的倍數 (抽屜原理)
題目連結:傳送門
題意: 略。
分析:
把字首和統計出來對n取模,任意連個相等的sum[i],sum[j],[i,j]內的數的和都滿足這個條件。
n個數對n取模,範圍為[0~n-1],由抽屜原理可知,最少有一個數模n=0,或者兩個數模n相等。
程式碼如下:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int maxn = 50010;
LL a[maxn],sum[maxn];
int main()
{
int n;
while(~scanf("%d",&n)){
int tag = 0;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
sum[i] = i == 0 ? a[i]%n : (sum[i-1] + a[i])%n;
if(sum[i]==0) tag = i;
}
if(tag){
printf("%d\n",tag+1);
for(int i=0;i<=tag;i++)
printf("%d\n",a[i]);
continue;
}
int st=0,ed=0;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(sum[i]==sum[j]){
st=i+1,ed=j;
tag=j-i;
break;
}
}
if(tag) break;
}
if(tag==0) puts("No Solution");
else{
printf("%d\n",tag);
for(int i=st;i<=ed;i++)
printf("%d\n",a[i]);
}
}
return 0;
}
相關文章
- flutter上拉抽屜效果,flutter拖動抽屜效果Flutter
- Flutter 類抽屜效果動畫實現。Flutter動畫
- 【Unity】(UI)抽屜式摺疊皮膚UnityUI
- Flutter - Drawer 抽屜檢視與自定義headerFlutterHeader
- 仿百度地圖上拉下滑抽屜盒地圖
- selenium 如何確定一個抽屜全部拉取出來了?
- 安卓導航抽屜 Navigation Drawer 實現沉浸通知欄安卓Navigation
- 杭電OJ 2028求n個數的最小公倍數
- flutter好用的輪子推薦九-flutter可定製的上下滑出抽屜Flutter
- flutter好用的輪子推薦十二-flutter一個全屏動效的抽屜元件Flutter元件
- LeetCode 1103[分糖果II]LeetCode
- 51nod 1202 子序列個數
- hashMap 的size 為什麼 是2的 n次方倍HashMap
- Sqoop 並行抽數OOP並行
- 抽絲剝繭okhttp(五)Interceptors原理HTTP
- N個人圍成一圈數到3(或3的倍數)時出圈,問剩下的人是誰?
- 輸入N,再輸入N個數,N
- 計算2的N次冪n 可輸入,n為自然數
- 小於n的最大數
- n個骰子的點數
- 51nod 1204 Parity
- 求三個數的最小公倍數
- 指標-n個數的排序指標排序
- 拆解N的5位質數
- 找出N以內的偶數
- python 輸入一個整數,判斷其是否既是3的倍數,又是5的倍數Python
- 授勳 51Nod - 3216
- asyncio系列之抽絲剝繭分析事件排程的核心原理事件
- 【提升學習力】如何讓學習效果提升 N 倍
- 給定一個n,輸出從1到n的整數
- 3069 求n個整數的和
- 51nod 1597 有限揹包計數問題 (揹包 分塊)
- vue 數字上下滾動抽獎Vue
- 51nod 1366 貧富差距
- 51nod 3188 字元王國字元
- 【51nod】最大子段和
- Java動態編譯優化——提升編譯速度(N倍)Java編譯優化
- 統計整數區間[N,M](N,M<100000)中所以非偶數的合數個數,並輸出這個數。
- n個人圍成一圈,第一個人從1開始數數,數到3的倍數的人離開,最後剩的人是第幾個