头像

LORE




离线:17天前


最近来访(34)
用户头像
jojo_9
用户头像
yxc
用户头像
NZX
用户头像
房东的猫爱吃花椒
用户头像
husheng
用户头像
高冷範
用户头像
Tantalum_5
用户头像
我要出去乱说
用户头像
su尔
用户头像
wangdh15
用户头像
Joe9
用户头像
xrzscxy
用户头像
一塌糊涂
用户头像
宇智波鼬_4
用户头像
yaoveil
用户头像
ZIMA
用户头像
zshprint
用户头像
利贺田
用户头像
QUp0hfum
用户头像
HollowKnight

活动打卡代码 AcWing 843. n-皇后问题

LORE
1个月前
#include <algorithm>
#include <iostream>
#include <cstring>

using namespace std;

const int N = 10;
bool st[N][N];
int n;

bool check(int x,int y){
    for(int i = 0;i < n;i++)
        if(st[x][i] || st[i][y]) return false;

    for(int i = 0;i < n;i++)
        for(int j = 0;j < n;j++)
            if((i - j == x - y || i + j == x + y) && st[i][j])
             return false;

    return true;
}

void dfs(int u){
    if(u == n) {
        for(int i = 0;i < n;i++){
         for(int j = 0;j < n;j++)
            if(st[i][j]) cout << 'Q';
            else cout << '.';
           cout << endl;


    }
     cout << endl;
      return;   
    }
    for(int i = 0;i < n;i++)
        if(check(u,i)) 
        {
            st[u][i] = true;
            dfs(u+1);
            st[u][i] = false;
        }
}


int main(){
    cin >> n;

    dfs(0);

    return 0;
}








LORE
1个月前
#include <algorithm>
#include <iostream>
#include <cstring>

using namespace std;

const int N = 1010;
int f[N],a[N];
int n;

int main(){
    cin >> n;

    for(int i = 0;i < n;i++)
        cin >> a[i];

    for(int i = 0;i < n;i++)
    {
        f[i] = 1;
        for(int j = 0;j < i;j++)
            if(a[i] > a[j]) f[i] = max(f[i],f[j]+1);
    }
    int res;
    for(int i = 0;i < n;i++)
        res = max(f[i],res);
    cout << res << endl;
    return 0;
}


活动打卡代码 AcWing 3564. 日期类

LORE
3个月前

#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;
int ds[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
    int T;
    int year,month,day;
    cin >> T;
    while(T--){
        cin >> year >> month >> day;
        day++;
        if(day > ds[month]) month++,day=1;
        if(month > 12) month = 1,year++;
        printf("%04d-%02d-%02d\n",year,month,day);
    }
    return 0;
}



活动打卡代码 AcWing 3537. 树查找

LORE
3个月前

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 1010;

int q[N];
int n,k;
main(){

    cin >> n;
    for(int i = 1;i <= n;i++)
        cin >> q[i];
    cin >> k;
    if(1 << (k-1) > n) cout << "EMPTY";
    else 
    {
       for(int i = 1 << (k-1);i < (1 << k) && i <= n ;i++)
        cout << q[i] << ' ';
    }
    return 0;
}


活动打卡代码 AcWing 3511. 倒水问题

LORE
4个月前
#include <algorithm>
#include <cstring>
#include <iostream>
#include <unordered_set>

using namespace std;

typedef long long LL;

unordered_set<LL> states;
unordered_set<int> cs;

int A[3];
int B = 10000;
void pour(int b[],int i,int j){
    int t = min(b[i],A[j]-b[j]);
    b[i] -= t,b[j] += t;
}
LL get(int a[]){
    return a[0] * B * B + a[1] * B + a[2];
}
void dfs(int a[]){
    states.insert(get(a));
    cs.insert(a[2]);
    int b[3];
    for(int i = 0;i < 3;i++)
        for(int j = 0;j < 3;j++)
            if(i != j)
            {
                memcpy(b,a,sizeof b);
                pour(b,i,j);
                if(!states.count(get(b)))
                    dfs(b); 
            }
}
int main(){

    while(cin >> A[0] >> A[1] >> A[2]){
        states.clear();
        cs.clear();
        int a[3] = {0,0,A[2]};
        dfs(a);
        cout << cs.size() << endl;
    }
    return 0;
}


活动打卡代码 AcWing 3438. 数制转换

LORE
4个月前
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

int a,b;
int q[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
string s;
int get1(string s,int a){
    int sum = 0;
    int x;
    for(int i = 0;i < s.length();i++){
        if(s[i] <= 'Z' && s[i] >= 'A') x = q[s[i]-'A'+10];
        else if(s[i] <= 'z' && s[i] >= 'a') x = q[s[i]-'a'+10];
        else x = q[s[i]-'0'];
        sum *= a;
        sum += x;
    }
    return sum;
}
string get2(int s,int a){
    string res = "";
    char c;
    while(s){
        if((s % a) >= 10) c = (s % a) - 10 + 'A';
        else c = (s%a)+'0';
        res = c + res;
        s /= a;
    }
    return res;
}
int main(){
    cin >> a >> s >> b;
    int k = get1(s,a);
    string res = get2(k,b);
    cout << res << endl;
    return 0;
}


活动打卡代码 AcWing 4496. 吃水果

LORE
4个月前
#include <algorithm>
#include <iostream>
#include <cstring>

using namespace std;
const int N = 2010;
int n,m,k;
int mod = 998244353;
int f[N][N];

int main()
{
    cin >> n >> m >> k;
    f[1][0] = m;
    for(int i = 2;i <= n;i++)
        for(int j = 0;j <= k && j < i;j++)
        {
            f[i][j] = f[i-1][j];
            if(j) f[i][j] = (f[i][j]+f[i-1][j-1]*(m-1ll))% mod;
        }
    printf("%d",f[n][k]);
    return 0;
}


活动打卡代码 AcWing 4495. 数组操作

LORE
4个月前
#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

const int N = 100010;

int q[N],n,k;

int main(){
    cin >> n >> k;

    for(int i = 1;i <= n;i++)
        scanf("%d",&q[i]);

    sort(q+1,q+n+1);

    for(int i = n;i >= 1;i--)
        q[i] = q[i] - q[i-1];

    for(int i = 1;i <= n;i++){
        if(!k) break;
        if(q[i] != 0){
            k--;
            cout << q[i] << endl;
        }
    }
    while(k--) cout << 0 << endl;

    return 0;
}


活动打卡代码 AcWing 4494. 吃饭

LORE
4个月前
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;

int main(){
    int n,m,k;
    cin >> n >> m >> k;
    if(m >= n && k >= n) printf("Yes");
    else printf("No");
    return 0;
}


活动打卡代码 AcWing 3531. 哈夫曼树

LORE
4个月前
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;

int main(){
    int n;
    cin >> n;

    priority_queue<int,vector<int>,greater<int>> heap;
    while(n--){
        int x;
        cin >> x;
        heap.push(x);
    }
    int res = 0;
    while(heap.size() > 1){
        int x = heap.top();
        heap.pop();
        int y = heap.top();
        heap.pop();
        int sum = x + y;
        res += sum;
        heap.push(sum);
    }
    cout << res << endl;
    return 0;
}