Summer training #6

A:水.看0多还是1多就行

B:模拟二进制运算 ,,卡了好久 不应该

#include <bits/stdc++.h>
#include <cstring>
#include <iostream>
#include <algorithm>
#define foror(i,a,b) for(i=a;i<b;i++)
#define foror2(i,a,b) for(i=a;i>b;i--)
#define EPS 1.0e-8
#define PI acos(-1.0)
#define INF 3000000000
#define MOD 1000000009
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define lson o<<1, l, m
#define rson o<<1|1, m+1, r
//using ll = long long;
//using ull= unsigned long long;
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que;
typedef long long ll;
string a,b,c;
int num[4][110];
int will[4][110];
int alen;
int blen;
int clen;
void print()
{
 for(int i=10;i>=0;i--)
 cout<<num[1][i];
 cout<<endl;
 for(int i=10;i>=0;i--)
 cout<<num[2][i];
 cout<<endl;
 for(int i=10;i>=0;i--)
 cout<<num[3][i];
 cout<<endl;
}
void init()
{
 for(int i=1;i<=alen;i++)
        num[1][i]=a[alen-i]-‘0‘;
 for(int i=1;i<=blen;i++)
        num[2][i]=b[blen-i]-‘0‘;
 for(int i=1;i<=clen;i++)
        num[3][i]=c[clen-i]-‘0‘;
}
int doit(int a,int b,int c)
{
 int ans1;
 int ans2=0;
int flag=1;
 for(int i=1;i<=101;i++)
 {
        ans1=num[a][i]+num[b][i]+ans2;
        ans2=ans1/10;
        ans1%=10;
        if(ans1!=num[c][i])
        {
                flag=0;
                break;
        }
 }
 return flag;
}
int main()
{
 //freopen("in.txt", "r", stdin);
 //freopen("out.txt", "w", stdout);
 cin >> a >> b >> c;
 alen=a.size();
 blen=b.size();
 clen=c.size();
 for(int i=1;i<=3;i++)
 mem(num[i],0);
 init();
  //print();
 int flag=0;
 for(int i=1;i<=3;i++)
        for(int j=1;j<=3;j++)
        for(int w=1;w<=3;w++)
 {
        //cout<<i<<j<<w<<":";
        //cout<<doit(i,j,w)<<endl;
        if(doit(i,j,w)==1)
        {
        flag=1;
        }
 }
 if(flag==1)
        cout<<"YES";
 else
        cout<<"NO";
  return 0;
}

E:按照要求模拟 计算不符合题中要求的个数

#include <bits/stdc++.h>
#include <cstring>
#include <iostream>
#include <algorithm>
#define foror(i,a,b) for(i=a;i<b;i++)
#define foror2(i,a,b) for(i=a;i>b;i--)
#define EPS 1.0e-8
#define PI acos(-1.0)
#define INF 3000000000
#define MOD 1000000009
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define lson o<<1, l, m
#define rson o<<1|1, m+1, r
//using ll = long long;
//using ull= unsigned long long;
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que;
typedef long long ll;
int table[10][10];
int num[10005][10];//
int ans[6];
void doit(int x)
{
 for(int i=1;i<=5;i++)
 ans[i]=num[x][i];
}
int check1(int x)
{
 for(int i=1;i<=5;i++)
        for(int j=0;j<=9;j++)
 {
         doit(x);
         if(ans[i]==j)
         continue;
         ans[i]=j;
         table[table[table[ans[1]][ans[2]]][ans[3]]][ans[4]]
         if(anser==0)
         return 1;
 }
 return 0;
}
int check2(int x)
{
 for(int i=1;i<=4;i++)
 {
        doit(x);
        if(ans[i]==ans[i+1])
        continue;
        swap(ans[i],ans[i+1]);
        table[table[table[ans[1]][ans[2]]][ans[3]]][ans[4]]
        if(anser==0)
        return 1;
 }
 return 0;
}
int main()
{
 //freopen("in.txt", "r", stdin);
 //freopen("out.txt", "w", stdout);
        for(int i=0;i<10;i++)
        for(int j=0;j<10;j++)
        cin>>table[i][j];
        for(int i=0;i<10000;i++)
        {
        int now=i;
        for(int j=4;j>0;j--)
        {
        num[i][j]=now%10;
        now/=10;
        }
        for(int j=1;j<=4;j++)
        ans[j]=num[i][j];
        for(int j=1;j<=4;j++)
        {
        ans[j]=table[ans[j-1]][ans[j]];
        }
        num[i][5]=ans[4];
        }
 /*for(int i=1;i<=5;i++)
        cout<<num[2016][i];
        cout<<endl;
 for(int j=0;j<=10;j++)
 {
        for(int i=1;i<=5;i++)
        cout<<num[j][i];
        cout<<endl;
 }*/
 int ans=0;
 for(int i=0;i<10000;i++)
 if(check1(i)||check2[i])
 ans++;
 cout<<ans<<endl;
  return 0;
}

F:有N行单向流水线和对应的N个仓库 每个机器人有两个值 X Y  其中X表示坐标 Y表示在哪一个流水线下面 要求输出每个仓库能从几个流水线流入

根据题意每个仓库我们给他两个值 一个代表最上边能到达那个仓库 一个代表最下边能到达那个仓库 因为机器人只会连接相邻的两条线 所以保证l到r之间是连续的

再按机器人的坐标进行升序排序 然后依次读入 每次更新机器能碰到的两条线的l与r   (例二很有用)

#include <bits/stdc++.h>
#include <cstring>
#include <iostream>
#include <algorithm>
#define foror(i,a,b) for(i=a;i<b;i++)
#define foror2(i,a,b) for(i=a;i>b;i--)
#define EPS 1.0e-8
#define PI acos(-1.0)
#define INF 3000000000
#define MOD 1000000009
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define lson o<<1, l, m
#define rson o<<1|1, m+1, r
//using ll = long long;
//using ull= unsigned long long;
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que;
typedef long long ll;
pair<int,int> robot[200010];
int ans[200010][2];
bool cmp(pair<int,int> a,pair<int,int> b){return a.first<=b.first;}
int main()
{
 //freopen("in.txt", "r", stdin);
 //freopen("out.txt", "w", stdout);
 int n,m;
 while(scanf("%d %d",&n,&m)!=EOF)
 {
 for(int i=1;i<=n;i++)
 ans[i][0]=ans[i][1]=i;
 for(int i=1;i<=m;i++)
 {
        scanf("%d %d",&robot[i].first,&robot[i].second);
 }
 sort(robot+1,robot+1+m,cmp);
 for(int i=1;i<=m;i++)
 {
       int aim=robot[i].second;
       int ans1=min(ans[aim][0],ans[aim+1][0]);
       int ans2=max(ans[aim][1],ans[aim+1][1]);
       ans[aim][0]=ans1;
       ans[aim+1][0]=ans1;
       ans[aim][1]=ans2;
       ans[aim+1][1]=ans2;
 }
 for(int i=1;i<n;i++)
 cout<<ans[i][1]-ans[i][0]+1<<" ";
 cout<<ans[n][1]-ans[n][0]+1<<endl;
 }
  return 0;
}

时间: 2024-10-17 17:22:16

Summer training #6的相关文章

Android官方开发文档Training系列课程中文版:手势处理之滚动动画及Scroller

原文地址:http://android.xsoftlab.net/training/gestures/scroll.html 在Android中,滑动经常由ScrollView类来实现.任何超出容器边界的布局都应该将自己内嵌在ScrollView中,以便提供可滚动的视图效果.自定义滚动只有在特定的场景下才会被用到.这节课将会描述这样一种场景:使用scroller显示一种可滚动的效果. 你可以使用Scroller或者OverScroller来收集一些滑动动画所需要的数据.这两个类很相似,但是Ove

2017 UESTC Training for Data Structures

2017 UESTC Training for Data Structures A    水,找区间极差,RMQ怼上去. #include<bits/stdc++.h> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define rep(i,a,b) for (int i=a;i<=b;i++) #define per(i,b,a) for (int i=b;i&

WeChall_Training: Programming 1 (Training, Coding)

When you visit this link you receive a message.Submit the same message back to http://www.wechall.net/challenge/training/programming1/index.php?answer=the_messageYour timelimit is 1.337 seconds 解题: 先在浏览器获取自己的cookie,再用python写了个自动提交的程序,header加上自己的cooki

Training的第二十天

今天接着做前天的活,就是实现把下载下来的jpg格式的图片设置为桌面的功能.要实现这个功能的关键点一个是要调用API(SystemParametersInfo)更换桌面:二是要把下载下来的JPG格式的图片转换成Bmp格式的图片才能够应用为桌面. 由于对API没什么概念,所以我从网上查了下资料并从网上copy了有关该API变成C#的代码和把jpg格式的图片转换成bmp格式图片的代码.接着看懂了里面的代码便自己修改了一下.接下来的是完善这个程序和把它加入到windows自动启动的任务中. 对于程序的完

2014 Multi-University Training Contest 6 Apple Tree(数学题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4925 Apple Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 176    Accepted Submission(s): 120 Problem Description I've bought an orchard an

hdu 4925 Apple Tree--2014 Multi-University Training Contest 6

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4925 Apple Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 188    Accepted Submission(s): 129 Problem Description I've bought an orchard an

xtu DP Training C.炮兵阵地

炮兵阵地 Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on PKU. Original ID: 118564-bit integer IO format: %lld      Java class name: Main 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表

2014 Super Training #1 F Passage 概率DP

原题: HDU 3366   http://acm.hdu.edu.cn/showproblem.php?pid=3366 本来用贪心去做,怎么都WA,后来看网上原来是一个DP题. 首先按P/Q来做排序,即P越大,Q越小就越好,这样可以确保先选最优的路走. dp[i][j]表示已经到了第i条路(说明前i-1条都没成功的情况),还剩j块钱时能够走出去的概率. 则方程: dp[i][j] = way[i].P + way[i].Q*(dp[i+1][j-1]) + way[i].D*(dp[i+1]

2014 UESTC Training for Data Structures H - Cookies Test

H - Cookies Test Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status As chief programmer at a cookie production plant you have many responsibilities, one of them being that the cookies produced and packag

2014 UESTC Training for Data Structures K - 方师傅与栈

K - 方师傅与栈 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 方师傅有一个1?N的排列,排列的顺序是固定的,他想要把这个排列重新排列成他喜欢的顺序. 于是他买了一个栈,他会按顺序将排列扔进栈内,在某些时刻将栈顶元素取出,这样出栈后的排列就可以重新排序啦. 例如,原序列是1,2,他先将1入栈,再将2入栈,然后将2出栈,最后将1出栈,那么新序列就变