日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2129. 礼物

發布時間:2024/5/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2129. 礼物 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

圣誕節這天,某商店準備了N個禮品盒,分別用整數1-N進行編號。其中,編號為1的盒子中有一個糖果,編號為2的盒子中有2個糖果,。。。編號為N的盒子中有N個糖果。這天一早,中山幼兒園的K個小朋友一起來到這間商店。作為當天的第一批顧客,這些小朋友可以從這N個禮品盒中選出兩個拿走。小朋友們商量了一會兒后決定,他們拿走的糖果并不一定要多,但是一定要能夠剛好平分給每個人。即拿走的兩個盒子中的糖果總數一定要使K的倍數。現在他們想知道一共有多少種方案可供選擇。

輸入

每行兩個正整數N和K,其中1<=N<= 1 0 9 10^9 109, 1 &lt; = K &lt; = 1 0 9 1&lt;=K&lt;=10^9 1<=K<=109。一行N=K=0
表示輸入結束,這一行不用處理。

輸出

對輸入中除了N=K=0外的每一行,輸出一行,這一行只有一個數,即其相對應的輸入所得到的方案數。

數據范圍限制

20%的數據N<=100;
80%的數據K<=1000;
每個輸入文件最多有200行輸入數據。

Code

20分

#include<iostream> #include<stdio.h> #pragma GCC optimize (3) using namespace std; int main() {//freopen("gift.in","r",stdin);//freopen("gift.out","w",stdout);long long n,k;long long ans;long long sum;for(;;){cin >> n >> k;if(n != 0 && n != 1){ans = 0;for(register long long i = 1;i <= n;i++)for(register long long j = n;j >= i + 1;j--){sum = i + j;if(sum % k == 0 && sum != 1)ans++;}cout << ans << endl;}else if(n == 1)cout << 0 << endl; else break;}return 0; }

100分

#include<cstdio> #include<iostream> using namespace std; long long n,m,x,y,c,s; int main() {freopen("gift.in","r",stdin);freopen("gift.out","w",stdout);for(;;){cin >> n >> m;if(n && m){x = n / m;y = n % m;c = (m - 1) / 2;s = x * (x - 1) / 2 + x * x * c;if(m % 2 == 0)s += x * (x - 1) / 2;if(y > 0){if(y >= c)s = s + x * c;elses = s + x * y;y -= c;if(y > 0 && m % 2 == 0){s = s - x * (x - 1) / 2 + x * (x + 1) / 2;y--;}}if(y > 0)s += (x + 1) * y;cout << s << endl;}elsebreak;} }

總結

以上是生活随笔為你收集整理的2129. 礼物的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。