山东省第八届ACM大学生程序设计竞赛
C 暂时还不对
1 #include <iostream>
2 #include <cstdio>
3 #include <cmath>
4
5 using namespace std;
6
7 #define MOD 1000000007
8 typedef long long ll;
9
10 int jie[100010];
11
12 void jiecheng1(){
13 ll jiech=1;
14 for(ll i=1;i<=100010;i++){
15 jiech*=i;
16 jiech%=MOD;
17 jie[i]=jiech;
18 }
19 }
20
21
22 ll jiecheng(ll aa){
23 return jie[aa];
24
25 }
26
27 ll cal(int T,int Y){
28 if(T%2==1||Y%2==1){
29 return 0;
30 }
31 ll n,m;
32 n=T;
33 m=(T-Y)/2;
34 return (jiecheng(n)%MOD)/( ((jiecheng(m)%MOD)*(jiecheng(n-m)%MOD))%MOD );
35 }
36
37 int distan(int a,int b){
38 if(a>b){
39 return a-b;
40 }else{
41 return b-a;
42 }
43 }
44
45 int main()
46 {
47 int n,T,w;
48 int xi,ci;
49 ll result=0;
50 jiecheng1();
51 while(~scanf("%d %d %d",&n,&T,&w)){
52 result=0;
53 for(int i=0;i<n;i++){
54 scanf("%d %d",&xi,&ci);
55 if(T==distan(xi,w)){
56 result+=ci;
57 }else if(T>(int)abs(xi-w)){
58 result+=cal(T,distan(xi,w))*ci%MOD;
59 }
60 }
61 result%=MOD;
62 printf("%lld\n",result);
63
64
65 }
66 return 0;
67 }F 暂时不对
1 #include <iostream>
2 #include <cmath>
3
4 using namespace std;
5
6 int main()
7 {
8 double a,b,c;
9 int n;
10 double x,x1,x2;
11 while(cin>>n){
12 while(n--){
13 cin>>a>>b>>c;
14 if(a==0&&b==0){
15 if(c==0)
16 cout<<"NO"<<endl;
17 else
18 cout<<"YES"<<endl;
19 continue;
20 }
21 if(a==0){
22 x=(c*-1.0)/b;
23 if(x==(int)x)
24 cout<<"YES"<<endl;
25 else
26 cout<<"NO"<<endl;
27 continue;
28 }
29 x=(b*b-4*a*c);
30 if(x<0){
31 cout<<"YES"<<endl;
32 continue;
33 }
34 x=sqrt(x);
35 x1=(b*-1+x)/2.0*a;
36 x2=(b*-1-x)/2.0*a;
37 if(x1==(int)x1||x2==(int)x2)
38 cout<<"YES"<<endl;
39 else
40 cout<<"NO"<<endl;
41 }
42
43 }
44 return 0;
45 }G
package G;
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n,m;
int MOD=1000000007;
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
BigInteger iii=new BigInteger("1");
BigInteger eve=new BigInteger("0");
BigInteger res=new BigInteger("0");
n=sc.nextInt();
m=sc.nextInt();
for(int i=1;i<=n;i++){
iii=iii.valueOf(i);
eve=iii.pow(m).mod(BigInteger.valueOf(MOD));
res=res.add(eve);
res=res.mod(BigInteger.valueOf(MOD));
}
System.out.println(res.toString());
}
}
}J
1 #include <iostream>
2 #include <algorithm>
3
4
5 using namespace std;
6
7 struct Goods{
8 int val,cnt;
9 }a[1005];
10
11 int cmp(Goods x,Goods y){
12 return x.val<y.val;
13 }
14
15 int main()
16 {
17 int n, num, cnt;
18 long long sum;
19
20 while(cin>>n){
21 for(int i=0;i<n;i++){
22 cin>>a[i].val;
23 }
24 for(int i=0;i<n;i++){
25 cin>>a[i].cnt;
26 }
27 sort(a,a+n,cmp);
28
29 sum = num = 0;
30 while(a[num].val < 0){
31 num ++;
32 }
33 for(int i=num;i<n;i++){
34 sum += a[i].val * a[i].cnt;
35 }
36 num--;
37 cnt = 0;
38
39 while(a[num].val + sum > 0 && num >= 0){
40 if(cnt == 0){
41 cnt = a[num].cnt - 1;
42 } else {
43 cnt--;
44 }
45 if(cnt == 0){
46 num--;
47 }
48 sum += a[num].val;
49 }
50
51 if(cnt == 0) num++;
52 else a[num].cnt = cnt;
53
54 sum = 0;
55 for(int i=1; num < n; i++){
56 sum += a[num].val * i;
57 a[num].cnt--;
58 if(a[num].cnt == 0) num++;
59 }
60
61 cout<<sum<<endl;
62 }
63
64
65 return 0;
66 }K
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
long long f[];
struct node{
int a,d,c;
double f;
};
node sc[];
int cmp(node x,node y){
return x.f>y.f;
}
int main()
{
int n,T;
while(cin>>n>>T){
for(int i=;i<n;i++)
cin>>sc[i].a;
for(int i=;i<n;i++)
cin>>sc[i].d;
for(int i=;i<n;i++){
cin>>sc[i].c;
sc[i].f=(sc[i].d*1.0)/sc[i].c;
}
sort(sc,sc+n,cmp);
memset(f,,sizeof(f));
long long maxx=;
for(int i=;i<n;i++){
for(int j=T;j>=sc[i].c;j--){
f[j]=max(f[j],f[j-sc[i].c]+max(sc[i].a-sc[i].d*j,));
maxx=max(maxx,f[j]);
}
}
cout<<maxx<<endl;
}
return ;
}