A 水题:
代码语言:javascript复制#include<bits/stdc .h>
using namespace std;
int main(){
int k;
cin>>k;
int a,b;
cin>>a>>b;
for(int i=1;;i ){
if(i*k > b) {
cout<<"NG"<<endl;
break;
}
if(i*k>=a && i*k<=b){
cout<<"OK"<<endl;
break;
}
}
return 0;
}
B 水题:
代码语言:javascript复制#include<bits/stdc .h>
using namespace std;
typedef long long ll;
int main(){
ll x;
cin>>x;
ll sum = 100;
ll tot =0;
while(sum<x){
ll res = sum *0.01;
//cout<<res<<"0---";
sum = res;
tot ;
}
cout<<tot;
return 0;
}
C
一个典型的DFS 因为数据比较小,所以我们能这样子为序列中每一个元素赋值,然后维护更新得到最大值就行了。
代码语言:javascript复制#include<bits/stdc .h>
#define inf 0x3f3f3f3f
using namespace std;
int s[20];
int a[20],b[20],c[20],d[20];
int sum = -inf;
int n,m,q;
void check(){
int no = 0;
for(int i=0;i<q;i ){
if(s[b[i]] - s[a[i]] == c[i]){
no = d[i];
}
}
sum = max(sum,no);
return;
}
void dfs(int now,int val){
s[now] = val;
if(now == n){
check();
return;
}
for(int i=val;i<=m;i ){
dfs(now 1,i);
}
}
int main(){
cin>>n>>m>>q;
for(int i=0;i<q;i ){
cin>>a[i]>>b[i]>>c[i]>>d[i];
}
dfs(1,1);
cout<<sum<<endl;
return 0;
}
D 水题: 就是分析一下,当n<b时,后面那个为整体0,所以最大就是n取最大就行了, 否则就是取b-1跟取n比较一下取较大值就行了。
代码语言:javascript复制#include<bits/stdc .h>
#define inf 0x3f3f3f3f
using namespace std;
typedef long long ll;
int main(){
ll a,b,n;
cin>>a>>b>>n;
ll flag=-inf;
/*for(ll i=1;i<=n;i ){
flag = max(res-ans,flag);
}
*/
if(n < b){
cout<<(a*n)/b<<endl;
return 0;
}
else{
flag = max(a*(b-1)/b,flag);
flag = max(flag,(a*n)/b-a*(n/b));
}
cout<<flag<<endl;
return 0;
}