2018 다 교 합동 훈련 1

5124 단어 ACM
http://acm.hdu.edu.cn/contests/contest_show.php?cid=802
3 인 3 대의 컴퓨터 경기 가 있 었 는데, 한 팀 원 이 비 둘 기 를 맞 았 고, 단지 2 명 만 이 맞 았 으 며, 모두 5 문 제 를 넘 었 다.
1001: 물 문제, 3 과 4 의 배수 만 판단 하면 됩 니 다. solved by lyy
#include 
using namespace std;
#define ll long long
int t,n;

int main()
{
    scanf("%d",&t);
    while (t--)
    {
        scanf("%d",&n);
        if (n%3==0) printf("%lld
",(ll)(n/3)*(n/3)*(n/3)); else if (n%4==0) printf("%lld
",2LL*(n/4)*(n/4)*(n/4)); else printf("-1
"); } return 0; }

 
1003: 물 문제, 정렬 후 순서대로 점 을 찍 으 면 됩 니 다.
#include 
using namespace std;
#define ll long long
int t,n;
struct point
{
    int id;
    int x,y;
}p[3005];

bool cmp(point a,point b)
{
    return a.x

 
1011: 문자열 처리, solved by sdn
/*
  ID: oodt
  PROG:
  LANG:C++
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

using namespace std;

const int maxx=10005;
int n,m,k;
int a[maxx];
int ans = 0,cnt = 0,pos = 0;
int l = 0,r = 0;

int main()
{
#ifdef LOCAL
//    freopen("","r",stdin);
#endif
    int T;
    scanf("%d",&T);
    getchar();
    char str[100];
    int h,m,x,y;
    while(T--)
    {
        scanf("%d%d%s",&h,&m,str);
        if(str[3] == '+')
        {
            if(str[5] <= '9' && str[5] >= '0') x = 10*(str[4]-'0') + str[5] - '0';
            else x = str[4] - '0';
            if(str[5] == '.' || str[6] == '.')
            {
                if(str[5] == '.')
                y = str[6]-'0';
                else
                y = str[7]-'0';
                h += x-8;
                m += y * 6;
            }
            else {
                h += x-8;
            }
        }
        else {
            if(str[5] <= '9' && str[5] >= '0') x = 10*(str[4]-'0') + str[5] - '0';
            else x = str[4] - '0';
            if(str[5] == '.' || str[6] == '.')
            {
                if(str[5] == '.')
                y = str[6]-'0';
                else
                y = str[7]-'0';
                h += -x-8;
                m -= y * 6;
            }
            else {
                h += -8-x;
            }
        }
        if(m < 0) {
            m = (m + 60) % 60;
            h--;
        }
        if(m >= 60){
            m = m % 60;
            h++;
        }
        if(h < 0) h = (h + 24)% 24;
        if(h >= 24) h = h % 24;
        printf("%02d:%02d
",h,m); } return 0; }

 
1004: 정렬 후, 직접 폭력 으로 배열 에 숫자 를 채 우 면 됩 니 다. solved by lyy
#include 
using namespace std;
#define ll long long
int t,n,m;
int a[100005];
int sum[100005];
struct st
{
    int l,r;
}p[100005];

bool cmp(st a,st b)
{
    if (a.l!=b.l) return a.lr)
            {
                for (int j=l;j<=r;j++)
                {
                    sum[a[j]]=0;
                    l++;
                }
                for (int j=l;j

r) { for (int j=r;j

0) mi++; } } } } int ma=p[1].r; for (int i=1;i<=m;i++) { ma=max(ma,p[i].r); } for (int i=ma+1;i<=n;i++) { a[i]=1; } for (int i=1;i<=n;i++) { printf("%d",a[i]); if (i!=n) printf(" "); } printf("
"); } return 0; }


 
1007: 시 계 를 치고 OEIS 에 던 져 서 python 코드 를 찾 았 습 니 다. 연구 해 보 니 2 분 으로 쓸 수 있 습 니 다. solved by lyy.
#include 
using namespace std;
#define ll long long
const ll mod=1000000007;
int t;
ll n;

long long inv(long long a,long long m)
{
    if(a == 1)return 1;
    return inv(m%a,m)*(m-m/a)%m;
}

ll inv2=inv(2,mod);

ll f(ll x)
{
    if (x==1) return 1;
    else return x+f(x/2);
}

ll find(ll n)
{
    ll l=1,r=n;
    ll m;
    while (l<=r)
    {
        m=(l+r)/2;
        if (f(m)

좋은 웹페이지 즐겨찾기