Educational Codeforces Round 103 (Rated for Div. 2) A.K-divisible Sum+B.Inflation+C.Longest Simple Cycle题解
A. K-divisible Sum(可分割总和)
题意:给两个数字n,k,构造一个有n个数的数组使得数组的总和可以整除k,且要使这个数组中的每个数尽可能的小,输出数组中的最大值;
思路:这题分两种情况
一:k<=n ;这种情况也分为两种;
1.是n%k==0,这个时候数组中的数字都为1就可以整除k所以直接输出1;
2 当n%k!=0的时候,数组中的元素可以由若干个1和若干个2组成,所以输出2;
二:k>n: k/n向上取整就是答案
#include<iostream> using namespace std; int main() { int t; cin>>t; while(t--){ int n,k; cin>>n>>k; if(n<=k) { int res=k%n?(k/n+1):(k/n); cout<<res<<'\n'; }//这样可以向上取整 else{ int ans=n%k?2:1; cout<<ans<<'\n'; } } return 0; }