3.11-3.17 周记

3.11-3.17

这周比较水,周一满课,看了看单调队列优化dp,晚上准备英语演讲,做了些天梯赛的题目,周二几乎整天都在准备英语演讲。随手过了几个L1的题目。星期三结束了英语演讲之后,晚上怒刷L1。星期四将L1完结,开刷L2。周五看了看python,数据库,晚上继续L2。周六参加了西北大学校赛,跟sx大佬a了五个题,拿了全场第一个一血,太刺激了。最后过了五个题也还算完美。今天匆匆忙忙补完了作业,不敢拖拉,赶紧补上本周的总结

1. 天梯赛练习集-L1部分

L1-006?连续因子

#include <bits/stdc++.h>
using namespace std;
int n;
int main(){
    cin>>n;
    int max_len = sqrt(n);
    int res_begin = 0,res_len = 0;
    for(int i=2;i<=max_len;i++){
        if(n%i==0){
            int k = n,cnt = 0,now = i;
            while(k%now==0){
                k/=now;
                cnt++;
                now++;
            }
            if(cnt>res_len){
                res_len = cnt;
                res_begin = i;
            }
        }
    }
    if(res_len == 0){
        cout<<1<<endl<<n<<endl;
        return 0;
    }
    printf("%d\n%d",res_len,res_begin);
    for(int i=1;i<res_len;i++)
        printf("*%d",res_begin+i);
    puts("");
    return 0;
}

L1-020?帅到没朋友

这个题比较坑,输出的id必须是5位,而且需要有前缀0

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int n,p[100000]={0};
    cin>>n;
    for(int i=0;i<n;i++)
    {
        int x;
        cin>>x;
        for(int j=0;j<x;j++)
        {
            int y;
            cin>>y;
            if(x!=1)
            p[y]=1;

        }
    }
    int m,sum=0,flag=1;
    cin>>m;
    for(int i=0;i<m;i++)
    {
        int o;
        cin>>o;
        if(p[o]==0)
        {
            p[o]=1;
            sum++;
            if(flag==1)
            {
                printf("%05d",o);
                flag=0;
            }
            else
            {
                printf(" %05d",o);
            }
        }
    }
    if(sum==0)
    {
        cout<<"No one is handsome";
    }
    cout<<endl;
    return 0;
}

L1-023?输出GPLT

这个题也卡了一点时间,主要问题就是最后循环不到位,输出的不完全

#include <bits/stdc++.h>
using namespace std;
char s[10010];
int G,P,L,T;
int a[4];
char t[4] = {'G','P','L','T'};
int main(){
    cin>>s;
    int len = strlen(s);
    for(int i=0;i<len;i++){
        if(s[i]=='G'||s[i]=='g')G++;
        else if(s[i]=='P'||s[i]=='p')P++;
        else if(s[i]=='L'||s[i]=='l')L++;
        else if(s[i]=='T'||s[i]=='t')T++;
    }
    a[0] = G,a[1] = P,a[2] = L,a[3] = T;
    int sum = G+P+L+T;
    //循环条件Len+4
    for(int i=0;i<len+4;i++){
        if(a[i%4]){
            printf("%c",t[i%4]);
            a[i%4]--;
            sum--;
            if(sum==0)break;
        }
    }
    puts("");
    return 0;
}

L1-025?正整数A+B

  • 这个题理解错题意了,输入在一行给出A和B,中间是空格隔开,输入样例里面有一个多数字的,其实第一个空格之后的都属于B,简直坑惨了
#include <bits/stdc++.h>
using namespace std;
string A,B;
int a;int b;
int convert(string s){
    int res = 0;
    int len = s.length();
    if(len<1||len>4)return false;
    for(int i=0;i<len;i++)
        res = res*10+s[i]-'0';
    return res;
}
bool check(string s){
    int len = s.length();
    if(len<1||len>4)return false;
    for(int i=0;i<len;i++)
        if(!isdigit(s[i]))return false;
    int num = convert(s);
    if(num>1000||num<1)return false;
    return true;
}
char str1[1100],str2[1100];
int main(){
    char str1[1100], str2[1100];
    scanf("%s",str1);
    getchar();
    cin.getline(str2,sizeof str2);
    A = string(str1);
    B = string(str2);
    //cout<<A<<endl<<B<<endl;
    int f1=0,f2 = 0;
    if(check(A)){
        f1 = 1;
        a = convert(A);
    }
    if(check(B)){
        f2 = 1;
        b = convert(B);
    }
    if(f1)printf("%d",a);
    else printf("?");
    printf(" + ");
    if(f2)printf("%d",b);
    else printf("?");
    printf(" = ");
    if(f1&&f2)printf("%d",a+b);
    else printf("?");
    puts("");
    return 0;
}

L1-046?整除光棍

import java.util.Scanner;
import java.math.BigInteger;

public class Main {

    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        String str = cin.next();
        BigInteger a = new BigInteger(str);
        BigInteger b = new BigInteger("1");
        BigInteger end = new BigInteger("0");
        int num = 1;
        while(true) {
            if(end.equals(b.remainder(a))) {
                break;
            }
            b = b.multiply(new BigInteger("10")).add(new BigInteger("1"));
            num++;
        }
        System.out.println(b.divide(a)+" "+num);
    }

}
  • 竖式除法自己没想出来
#include<iostream>
using namespace std;
int main()
{
    int x,s=0,n=0;//定义除数,被除数,位数
    cin>>x;
    while(s<x)
    {
        s=s*10+1;//被除数末位添1直到不小于被除数
        n++;//位数增1
    }
    while(true)//开始进行除法运算
    {
        cout<<s/x;//输出商
        s%=x;//被除数更新为余数
        if(s==0)break;//余数为0则结束
        s=s*10+1;//余数末位添1
        n++;//位数增1
    }
    cout<<' '<<n;
    return 0;
}

L1-049?天梯赛座位分配

  • 这题逼我用bfs做,实在是无法正视
#include <bits/stdc++.h>
using namespace std;
int n,a[101];
int res[101][101];
struct node{
    int x,y;
};
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    queue<node> q;
    for(int i=1;i<=n;i++)q.push({i,1});
    int cnt = 0;
    while(!q.empty()){
        int x = q.front().x;
        int y = q.front().y;
        q.pop();
        res[x][y] = ++cnt;
        if(y<a[x]*10)q.push({x,y+1});
    }
    for(int i=1;i<=n;i++){
        printf("#%d\n",i);
        int jud = 1;
        for(int j=1;j<=a[i]*10;j++){

            int now = res[i][j];
            if(j!=1&&res[i][j]==res[i][j-1]+1){
                now = res[i][j]+jud;
                jud++;
            }
            if(j%10==1)printf("%d",now);
            else printf(" %d",now);
            if(j%10==0)puts("");
        }
    }
    return 0;
}

2.天梯赛练习集-L2部分

这部分放到下一周叭,就这么愉快的说定了。我要去补题了。

原文地址:https://www.cnblogs.com/1625--H/p/10548249.html

时间: 2024-08-28 02:49:40

3.11-3.17 周记的相关文章

/*有数组{2,5,6,11,15,17,22,34,45},用户输入的任意整数 是否在数组中,如果不在打印没有该数字,如果在删掉该数字,并把后面的数字依 次往前挪动,最后用数字0补位。例如:用户输入22,那么数组中的数据变化为 {2,5,6,11,15,17,34,45,0}*/

void main() { int a[9]={2,5,6,11,15,17,22,34,35},i,j,temp,x,n=1; printf("请输入一个整数:"); scanf("%d",&x); for(i=0;i<9;i++) { if(x==a[i]) { for(j=i;j<8;j++) { a[j]=a[j+1]; } a[8]=0; n=2; break; } } switch(n) { case 1: printf("

有数组{2,5,6,11,15,17,22,34,45},将用户输入的任意整数放入数组正确的位 置中,保证顺序不能乱掉。例如:用户输入9,那么数组为{2,5,6,9,11,15,17,22 ,34,45}

#include <stdio.h>void main(){ int a[9]={2,5,6,11,15,17,22,34,35},b[10]={0,2,5,6,11,15,17,22,34,35},x,i,j,temp; printf("请输入一个整数:"); scanf("%d",&x); b[0]=x; for(i=0;i<10;i++) { for(j=0;j<9;j++) { if(b[j]>b[j+1]) { tem

2014年11月17~11月18日,杨学明老师《企业IT需求收集和实施》内训在湖南长沙某酒店成功举办!

2014年11月17至18日,受湖南某软件企业的邀请,杨学明老师<企业IT需求收集和实施>内训在某长沙某五星级酒店成功举办!来自全国各地的IT高管和企业负责人参加了此次培训.杨学明老师分别从企业IT规划与选型普遍面临的问题和挑战. IT需求及策略. IT建设原则.IT流程体系. IT组织.IT选型步骤.IT实施步骤.实际选型和案例.选型流程分享等进行了讲解,共60多人参加了此次内训,课后大家一致认为课程含金量高,是国内最好的IT规划类课程.

PSP(5.11——5.17)以及周记录

1.PSP 5.11 14:30 20:00 130 200 Cordova A Y min 5.12 9:00 14:00 100 200 Cordova A Y min 5.13 13:30 15:00 20 70 软件项目管理课 A Y min 19:00 20:00 20 40 Cordova A Y min 5.17 11:00 19:00 240 240 Cordova A Y min 2.PSP分类统计以及圆饼图 分类 A B C D 时间总计 750 0  0 0     3.周

第八周(11.11-11.17)----结对项目----实现任意位置加一对括号

为了可以出带括号的题目,我学习了以往同学的作业.庆幸的是出题的要求只是出四个数进行运算就行,这样就大大缩减了这个功能的难度. 只有一对括号出现可以有以下几种情况: 1+1+1+1; (1+1)+1+1; (1+1+1)+1; 1+(1+1)+1; 1+(1+1+1); 1+1+(1+1); 所以在主类中编写了swich(i),这里的 i 是1-6的随机数,将会在上述的六种情况中随机挑选出一种.想利用这个中方法出带括号的题目,把原式从String数组类型改为String类型. 1 String z

linux运维实战练习-2015年11月8日-11月17日课程

作业(练习)内容: ---------------------------------------------------------------------------------------------------- 一.iptables类作业 前提:INPUT和OUTPUT默认策略为DROP: 1.限制本地主机的web服务器在周一不允许访问:新请求的速率不能超过100个每秒:web服务器包含了admin字符串的页面不允许访问:web服务器仅允许响应报文离开本机: 把filter表的INPU

第九周(11.11-11.17)----每周例行报告

psp 日期 项目 内容 开始时间 结束时间 间断时间 净时间 2016.11.11 文档 Beta版本发布140字评论 11:03 11:37 0 34 2016.11.12 编码 计算后缀表达式 23:55 0:44 1 48 2016.11.13 文档 计算后缀表达式博客 10:10 10:23 0 13 学习 任意位置加括号 15:55 16:08 2 11 编码 任意位置加括号 17:30 19:21 2 109 文档 任意位置加括号博客 22:15 22:51 0 36 2016.1

Effective C++ (笔记) : 条款11 -- 条款17

条款11:在operator=中处理"自我赋值" 自我赋值有时候不是那么明显,在处理循环(a[i] = a[j]).指针(*px = *py)和参数传递(func(const Base &rb, const Derived *pd))的时候可能会发生. Widget::operator=(const Widget& rhs) { delete pb; pb = new Bitmap(*rhs.pb); return *this; } 这是一份不安全的实现版本,在自赋值的

51CTO学院新课发布~~带你遇见更好的自己(九)(2017.11.04-12.17)

新的一周新的失望,大家好,你们的毒鸡汤姐又华丽丽的上线了.今天想跟大家聊聊这个投资.为什么要说这个呢?因为最近小编的妈妈(一位三四线小城市的中年妇女),居然开始玩区域链了,这使得小编不寒而栗,毕竟我现在都没彻底搞清楚区域链.曾记得我是2014年的时候开始听说比特币,身边有买比特币的朋友也一直跟我分享他们的喜悦.因为今年比特币的大幅上涨,形成了一种投资热潮.随之而来的区域链.加密货币等等获得了更多投资者的关注.不少投资者开始寻找下一个比特币,于2011年推出的莱特币或许是其中一个备选.曾经莱特币在

8.1 11.14-11.17

11.14 apache和PHP结合(上) 1 使httpd可以解析php: 告警信息: [[email protected] conf]# /usr/local/apache2.4/bin/apachectl restart AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::d46b:4589:4da1:2f34. Set the 'ServerN