A:https://ac.nowcoder.com/acm/contest/7329/A
题意:初始时间是12:00,问你t分钟之后时针和分针的较小夹角的度数,需要将答案四舍五入到整数。
思路:题目已经告诉我们时针和分针每分钟转多少度了。那么我们可以计算分针和时针在t分钟后的位置。然后输出答案就可以了。时针角度就可以直接算,分针由于每小时重置一次的缘故,把t%60就可以了。

//team yglance+xhwl+TTD
#include<bits/stdc++.h>
typedef long long ll;
const ll mod=1e9+7;
const ll maxn=1e5+7;
const double pi=acos(-1);
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    //freopen("in.in","r",stdin);
    //freopen("out.out","w",stdout);
    int n;
    cin>>n;
    while(n--)
    {
        int t;
        cin>>t;

        {
            int h,m;
            m=0;
            m+=t%60;
            double a;
            double b;
            a=0.5*t;//时针角度 
            b=m*6;//分针角度 
            //cout<<"t="<<t<<"  "<<a<<"   "<<b<<"   "; 
            if(t&1)
            {
                cout<<min(max(a,b)-min(a,b),360.0-(max(a,b)-min(a,b)))+0.5<<endl;
            }
            else
            {
                cout<<min(max(a,b)-min(a,b),360.0-(max(a,b)-min(a,b)))<<endl;
            }
        }
     } 
     return 0;
}

B:https://ac.nowcoder.com/acm/contest/7329/B
题意:给你一个长度为n的序列,再给你x,y。叫你把这个序列分成1~ x段(具体段数记作i),每次又要记录下每一段中的最大的前1~ i个数(记作j)。之后计算这些“最大值”的总和,然后叫你求总和的最大值。
思路:首先要明白对于每个(i,j),我们的划分是不一样的,这个可以在样例中看出来。下一步我们来想,我们想要总和最大,那么就应该是这个序列最大的那些数的总和,为什么这么说,因为对于每个(i,j)我们都可以进行对应的划分,使得这些划分中要取得数恰是原序列的那些最大值。
例:
5
1 5 2 4 3
2 2
val(1,1)=5 ,分割成 [1 5 2 4 3],最大的数是 5
val(1,2)=11,分割成 [1 5 2 4 3],最大的两个数是 5 和 4
val(2,1)=11,分割成 [1 5][2 4 3],两组中各自最大的数是 5 和 4
val(2,2)=19,分割成 [1 5 2][4 3],两组中各自最大的两个数是 5 2 和 4 3
故答案为5+9+9+14=37
这个例子是觉得自己讲的太烂了。有助于别人理解。
至此代码也就出来了

//team yglance+xhwl+TTD
#include<bits/stdc++.h>
typedef long long ll;
const ll mod=1e9+7;
const ll maxn=1e5+7;
const double pi=acos(-1);
using namespace std;
//对于I=1,答案一定是sort
ll a[maxn];
ll ans=0;
ll x,y,n;
ll sum[maxn];
int main()
{
    ios::sync_with_stdio(false);
    //freopen("in.in","r",stdin);
    //freopen("out.out","w",stdout);
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    sort(a,a+n,greater<ll>());
    cin>>x>>y;
//    for(int i=0;i<n;i++)
//    {
//        cout<<a[i]<<" ";
//    }
//    cout<<endl;
    sum[0]=a[0];
    for(int i=1;i<n;i++)
    {
        sum[i]=sum[i-1]+a[i];
    }
//    for(int i=0;i<n;i++)
//    {
//        cout<<sum[i]<<" ";
//    }
//    cout<<endl;
    for(int i=1;i<=x;i++)
    {
        for(int j=1;j<=y;j++)
        {
            ans+=sum[i*j-1];
        }
    }
    cout<<ans<<endl;
     return 0;
}

写在最后:
玩了半年吧,今年和明年也没机会了,还没开始就结束了。
尽人事听天命!