多校6 HDU-6098 Inversion 水题以及神奇的代码操作
来源:互联网 发布:淘宝最诚信的邮票商家 编辑:程序博客网 时间:2024/05/18 15:51
原题链接:
HDU-6098
大意:给一个串,然后生成另一个串,生成规则是(i>=2):
限制没啥特殊的,nlogn算法
思路:
暴力瞎搞即可。
排序 从后往前找 找到就 break
#include <bits/stdc++.h>using namespace std;typedef long long ll;#define mem(s,t) memset(s,t,sizeof(s))#define D(v) cout<<#v<<" "<<v<<endl#define inf 0x3f3f3f3f//#define LOCALinline void read(int &x){ x=0;char p=getchar(); while(!(p<='9'&&p>='0'))p=getchar(); while(p<='9'&&p>='0')x*=10,x+=p-48,p=getchar();}const int MAXN=100000+10;int a[MAXN],id[MAXN];bool cmp(int x,int y){return a[x]>a[y];}int main() {#ifdef LOCAL freopen("in.txt","r",stdin); freopen("out.txt","w",stdout);#endif int t; read(t); while(t--){ int n; read(n); for(int i=1;i<=n;i++){ read(a[i]); id[i]=i; } //sort(id+1,id+n+1,[&](int x,int y){return a[x]>a[y];}); sort(id+1,id+n+1,cmp); int f=1; for(int i=2;i<=n;i++){ for(int j=1;j<=n;j++){ if(id[j]%i){ if(f) printf("%d",a[id[j]]),f=0; else printf(" %d",a[id[j]]); break; } } } puts(""); } return 0;}
从标程学到两个神奇的东西 一个是 C++11 特性。
sort(id+1,id+n+1,[&](int x,int y){return a[x]>a[y];});
还有一个是神奇的 printf
非行末输出空格,否则换行。学习一个。
printf("%d%c",f," \n"[i==n]);
[i==n] 本身是判断条件 其值为 0 或 1 刚好对应 ” \n” 的下标 映射到 %c 产生奇妙的效果
阅读全文
0 0
- 多校6 HDU-6098 Inversion 水题以及神奇的代码操作
- 2017多校赛6 Inversion hdu 6098
- HDU 6098-Inversion
- HDU 6098-Inversion
- hdu 6098 Inversion
- HDU 6098 Inversion
- hdu-6098-Inversion
- HDU 6098 Inversion
- HDU 6098 Inversion【思维】
- HDU 6098 Inversion(RMQ)
- HDU 6098 Inversion【】
- #HDU 6098 Inversion
- HDU 6098 Inversion
- HDU 6098 Inversion
- 神奇的mongo:JS操作mongo的代码
- hdu -- 6098 -- Inversion(排序)
- hdu 5402 一道神奇的模拟题
- 堆栈操作之———神奇的代码
- CodeForces 785E Anton and Permutation (分块)
- Unity2017+Easytouch5双摇杆控制角色&&视角&&animation动画[新手向]
- MyBatis Generator详解
- 装修日志
- POJ 3526 The Teacher’s Side of Math 高斯消元
- 多校6 HDU-6098 Inversion 水题以及神奇的代码操作
- 2017.08.10
- laravel 自定义全局函数
- 【Leetcode】【python】Roman to Integer
- H5实现无插件视频监控按需直播
- (十三)异常分析
- google closure-complier一个问题的解决方法
- Python的matplotlib(2)
- [LeetCode P32] Longest Valid Parentheses 四种解法