CF364B. Free Market

本文详细解析了CF364B.FreeMarket问题的解决方案,阐述了通过排序和动态规划确定最优价值组合的方法,并提供了完整的C++代码实现,展示了如何在限定条件下获取最大价值。

CF364B. Free Market

Solution

  • 显然最终能取到的物品必然是按cic_ici从小到大排序后的一段前缀。
  • 能取到的价值集合可由这段前缀做背包得到。
  • 每一轮取数的价值最多增加ddd

因此先对所有cic_ici做背包,从000开始每次贪心地选取距离不超过ddd的能被ccc表出的最大的价值,直到取到更大为止。

Code

#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <ctime>
#include <cassert>
#include <string.h>
//#include <unordered_set>
//#include <unordered_map>
//#include <bits/stdc++.h>

#define MP(A,B) make_pair(A,B)
#define PB(A) push_back(A)
#define SIZE(A) ((int)A.size())
#define LEN(A) ((int)A.length())
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define fi first
#define se second

using namespace std;

template<typename T>inline bool upmin(T &x,T y) { return y<x?x=y,1:0; }
template<typename T>inline bool upmax(T &x,T y) { return x<y?x=y,1:0; }

typedef long long ll;
typedef unsigned long long ull;
typedef long double lod;
typedef pair<int,int> PR;
typedef vector<int> VI;

const lod eps=1e-11;
const lod pi=acos(-1);
const int oo=1<<30;
const ll loo=1ll<<62;
const int mods=1e9+7;
const int MAXN=1000005;
const int P=1e7+19;
const int INF=0x3f3f3f3f;
/*--------------------------------------------------------------------*/
inline int read()
{
	int f=1,x=0; char c=getchar();
	while (c<'0'||c>'9') { if (c=='-') f=-1; c=getchar(); }
	while (c>='0'&&c<='9') { x=(x<<3)+(x<<1)+(c^48); c=getchar(); }
	return x*f;
}
int a[MAXN],f[MAXN];
signed main()
{
	int n=read(),d=read(),mx=0;
	for (int i=1;i<=n;i++) a[i]=read(),mx+=a[i];
	f[0]=1;
	for (int i=1;i<=n;i++)
			for (int j=mx;j>=a[i];j--) f[j]|=f[j-a[i]];
	for (int c=0,nw=0;c<=mx;c++)
	{
		int pre=nw;
		for (int i=nw+d;i>=nw;i--)
			if (f[i]) { nw=i; break; }
		if (nw==pre) { printf("%d %d\n",nw,c); return 0; }
	}
	return 0;
}
{ "product_id": "3767461092264116344", "schema": { "model": { "sku_detail": { "value": [ { "brand_country": null, "cargo_related_cmpu": null, "cb_wares_info": null, "customs_report_info": null, "id": "3527608283404802", "price": "70.8", "reserved_stock_info": { "channel_stock_detail": [ ], "channel_stock_num": null, "promotion_stock_num": null }, "self_sell_stock": 5000, "shop_warehouse": null, "sku_delivery_delay_day": "", "sku_id": "3527608283404802", "sku_status": true, "source_country": null, "source_product": null, "spec_detail_ids": [ "1839581026529356" ], "stock_info": { "stock_inc_num": 0, "stock_num": 5000, "use_cargo_stock": false }, "supplier_id": "" }, { "brand_country": null, "cargo_related_cmpu": null, "cb_wares_info": null, "customs_report_info": null, "id": "3527608283405058", "price": "97.8", "reserved_stock_info": { "channel_stock_detail": [ ], "channel_stock_num": null, "promotion_stock_num": null }, "self_sell_stock": 5000, "shop_warehouse": null, "sku_delivery_delay_day": "", "sku_id": "3527608283405058", "sku_status": true, "source_country": null, "source_product": null, "spec_detail_ids": [ "1839581026529372" ], "stock_info": { "stock_inc_num": 0, "stock_num": 5000, "use_cargo_stock": false }, "supplier_id": "" }, { "brand_country": null, "cargo_related_cmpu": null, "cb_wares_info": null, "customs_report_info": null, "id": "3527608283405314", "price": "127.8", "reserved_stock_info": { "channel_stock_detail": [ ], "channel_stock_num": null, "promotion_stock_num": null }, "self_sell_stock": 5000, "shop_warehouse": null, "sku_delivery_delay_day": "", "sku_id": "3527608283405314", "sku_status": true, "source_country": null, "source_product": null, "spec_detail_ids": [ "1839581026529388" ], "stock_info": { "stock_inc_num": 0, "stock_num": 5000, "use_cargo_stock": false }, "supplier_id": "" }, { "brand_country": null, "cargo_related_cmpu": null, "cb_wares_info": null, "customs_report_info": null, "id": "3527608283405570", "price": "41.7", "reserved_stock_info": { "channel_stock_detail": [ ], "channel_stock_num": null, "promotion_stock_num": null }, "self_sell_stock": 5000, "shop_warehouse": null, "sku_delivery_delay_day": "", "sku_id": "3527608283405570", "sku_status": true, "source_country": null, "source_product": null, "spec_detail_ids": [ "1839581026529404" ], "stock_info": { "stock_inc_num": 0, "stock_num": 5000, "use_cargo_stock": false }, "supplier_id": "" }, { "brand_country": null, "cargo_related_cmpu": null, "cb_wares_info": null, "customs_report_info": null, "id": "3527608283405826", "price": "53.7", "reserved_stock_info": { "channel_stock_detail": [ ], "channel_stock_num": null, "promotion_stock_num": null }, "self_sell_stock": 5000, "shop_warehouse": null, "sku_delivery_delay_day": "", "sku_id": "3527608283405826", "sku_status": true, "source_country": null, "source_product": null, "spec_detail_ids": [ "1839581026596876" ], "stock_info": { "stock_inc_num": 0, "stock_num": 5000, "use_cargo_stock": false }, "supplier_id": "" } ] }, "spec_detail": { "value": [ { "id": "1839581026528380", "name": "颜色", "spec_values": [ { "id": "1839581026529356", "img_url": "https://p9-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_5df95571bacacf922e8c37a3de756431_sx_158437_www800-800", "name": "大号钢架尺30米" }, { "id": "1839581026529372", "img_url": "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_5df95571bacacf922e8c37a3de756431_sx_158437_www800-800", "name": "大号钢架尺50米" }, { "id": "1839581026529388", "img_url": "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_5df95571bacacf922e8c37a3de756431_sx_158437_www800-800", "name": "大号钢架尺100米" }, { "id": "1839581026529404", "img_url": "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_fbe9fe8421903b55ba4d145a2643ed81_sx_126893_www800-800", "name": "小号钢架尺30米" }, { "id": "1839581026596876", "img_url": "https://p9-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_fbe9fe8421903b55ba4d145a2643ed81_sx_126893_www800-800", "name": "小号钢架尺50米" } ] }, { "is_default": true, "id": "994777959641832039", "name": "默认", "spec_values": [ { "id": "992068055803834573", "name": "默认" } ] } ] }, "white_background_pic": { "value": [ { "url": "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_c8ffb8f0d8743a222b460447af724639_sx_101226_www800-800" } ] }, "after_sale": { "value": { "quality_problem_return": { "option_id": null, "selected": true }, "supply_day_return_selector": { "option_id": "7-5", "selected": true } } }, "area_stock_switcher": { "value": false }, "category_properties": { "value": { "1687": [ { "diy_type": 0, "measure_info": null, "tags": null, "value_id": "596120136", "value_name": "无品牌" } ] } }, "delivery_delay_day": { "value": "2" }, "description": { "value": "<p><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_9af34d3b91dfcda1f1aa02cbd595fed0_sx_402315_www790-1125" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_54ab3b361d68c7bb91d1fdb93e2f9d48_sx_84695_www790-645" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_66e5bc7a2ae789f9880a5329d3236380_sx_472879_www790-1170" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_e0f605bb1021b0cc92c805fdd64a537e_sx_357278_www790-1054" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_afd37094560a88654f3abe5b31dab275_sx_309478_www790-1126" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_29350443b0952fdebb41a90bcb8d3e23_sx_257960_www790-949" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_582e010aec902ddfa4e814ac7fdb49e2_sx_74202_www790-347" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_807296a14becfead2f2c15427217fc78_sx_197482_www790-1121" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_ed2c93c7f42ac21027712920c9044af7_sx_85018_www790-358" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_468e4a3ee78512501983183a56adb9d8_sx_192991_www790-850" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_f2b733d2637cf06262e7bbf3179b2f5b_sx_183613_www790-915" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a469f301b9c195b6b833240f9adc1ffc_sx_36996_www790-314" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_d8c57ff3a871af865c5b600b05d2b9dd_sx_129008_www790-747" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_6e3cd37d29b3a2931251cbf2f9a95182_sx_130183_www790-739" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_e702d505e493d3a194f9e1d9defc2bd8_sx_125097_www790-759" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_a4e66d51475bb4427acfc96b1b427354_sx_123603_www790-754" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_862268da94f1d404cf17a9f563da1616_sx_215538_www750-779" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_7aaf5ee245ebf2251b89edb26698405d_sx_179597_www750-547" style="max-width:100%;"/><img src="https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_1a5719c6d9fd72751e90050d293e0628_sx_403325_www750-1204" style="max-width:100%;"/></p>" }, "detail_prettify_uri": { "value": "detail_prettify_045e485dda90cf1d41c224daa17d5345_1ujByp" }, "freight_id": { "value": "876937218" }, "goods_category": { "value": { "category_leaf_id": 22672, "first_cid": 20013, "first_cname": "五金/工具", "fourth_cid": 22672, "fourth_cname": "其他测量工具", "second_cid": 20284, "second_cname": "手动工具", "third_cid": 38226, "third_cname": "测量工具" } }, "interest_free_activity": { "value": [ ] }, "interest_free_activity_id": { "value": { "activity_template_id": "AT202406281206214183151154" } }, "interest_free_open": { "value": false }, "main_image_three_to_four": { "value": [ { "url": "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_fc2053327038b10f398e5b773b2ef501_sx_196929_www600-800" }, { "url": "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_580ec2400c025f3d4162d314af4c9a30_sx_102512_www600-800" }, { "url": "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_c6f5e4d3d0fda36b9c236761e4efa738_sx_94422_www600-800" }, { "url": "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_c5b07fbf071f79bcb95446ac0f751f12_sx_109630_www600-800" } ] }, "pic": { "value": [ { "url": "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_79b809eafd2cb2785d72d12c8b1c8313_sx_329742_www800-800" }, { "url": "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_d8e5f02311d394ebe93bdf397b900ecd_sx_142390_www800-800" }, { "url": "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_fbe9fe8421903b55ba4d145a2643ed81_sx_126893_www800-800" }, { "url": "https://p3-aio.ecombdimg.com/obj/ecom-shop-material/jpeg_m_5df95571bacacf922e8c37a3de756431_sx_158437_www800-800" } ] }, "pickup_method": { "value": "0" }, "presell_type": { "value": "0" }, "product_type": { "value": "0" }, "qualification": { "value": { } }, "reduce_type": { "value": "2" }, "short_product_name": { "value": "批发50米不锈钢卷尺" }, "start_sale_type": { "value": "1" }, "title": { "value": "批发卷尺钢卷尺50米手提式不锈钢架子尺插地尺50m盒尺不锈钢卷尺" }, "title_prefix": { "value": "" }, "title_suffix": { "value": "" }, "title_use_brand_name": { "value": false } }, "context": { "ability": [ ], "biz_identity": "xiaodian", "category_id": "22672", "fast_publish_type": "", "feature": { "not_first_render": "1", "session_data": "{"stock_incr_mode":true,"only_update_stock":null}" }, "gray_components": [ "is_evaluate_opened", "use_gold_price", "gold_price_type", "white_background_pic", "total_buy_num", "max_buy_num", "min_buy_num", "pickup_method", "is_auto_charge", "start_sale_type", "enable_all_channel_product_online", "car_vin_code", "category_properties", "goods_category", "interest_free_open", "interest_free_activity_id", "interest_free_activity", "main_image_three_to_four", "presell_type", "delivery_delay_day", "appoint_delivery_switch", "appoint_delivery_day", "delay_rule_switch", "delay_rule_order_time", "delay_rule_delivery_day", "delay_rule_delivery_date", "presell_end_time_switch", "presell_end_time", "presell_delivery_type", "presell_delay", "presell_time", "spec_detail", "use_old_spec", "privilege_service", "cp_contract_info", "contract_interest_subsidy_switch", "product_instant_discount_coupon", "product_promotion", "sale_channel_type", "alli_promotion_plan_switch", "after_sale", "supply_day_return_selector", "damaged_order_return", "support_authentic_guaranteeV2", "support_allergy_returnV2", "supply_allergy_return", "quality_problem_return", "supply_red_ass_return", "worry_free_settlement", "is_large_product", "three_guarantees", "fix_duration", "extended_duration", "mass_auction_rules", "gx_freight_id", "edu_discount", "size_info_template_id", "search_strategy_2c", "market_price", "sku_detail", "area_stock_switcher", "deposit_is_select", "deposit_price", "deposit_find_time", "is_c2b_switch_on", "micro_app_id", "dcar_coupon_type", "is_hainan_post", "is_hainan_pick", "freight_id", "custom_property", "refund_tips", "product_desc_text", "promotion_goods_coupon_comp", "quality_control", "title", "title_prefix", "title_suffix", "title_use_brand_name", "title_struct", "title_switcher", "main_pic_video", "description", "detail_prettify_uri", "detail_prettify_info", "account_template_id", "reduce_type", "short_product_name", "inner_shop_category", "outer_product_id", "category_property_prefill", "category_property_prefill_spu", "category_property_prefill_barcode", "item_max_per_order", "customs_clear_type", "cdf_category", "cross_warehouse_id", "origin_country_id", "source_country_id", "brand_country_id", "tax_payer", "net_weight_qty", "nutritional_information", "shop_category", "product_ingredients", "default_process_time", "category_property_pic", "#notification", "long_pic", "poi_code_type", "poi_coupon_return_methods", "poi_total_can_use_count", "poi_condition", "poi_link", "poi_valid_range", "poi_service_num", "poi_notification", "poi_lib_id", "poi_financial_settlement_rate", "poi_ids", "poi_valid_type", "poi_valid_days", "product_type", "qualification", "reference_price", "reference_price_certificate_type", "reference_price_certificate_urls", "restricted_purchasing_plan", "pic", "weight_unit", "weight_value", "first_charge_verification", "return_address", "auction_type", "common_reject", "quality_inspection_info", "dcar_coupon_rights" ], "model_type": "normal", "n_token": "202508051519307564B95E4372C9DA5687", "operation_type": "normal", "product_id": "3767461092264116344", "token": "202508051519297564B95E4372C9DA5687", "version": "v1_v8_v9" } }, "category_id": "22672", "pass_through_extra": { }, "_nsToken": "Vmtaa52QxTnRWbkpOV0VaWVZrVktVVlZyWkRCT1JsSlhWVzF3VGxaVVZrWldSbEpQVlVaS1NGa3pjRlZpV0VKTFdrUkJOVlZzUWxWTlJEQTk=", "request_extra": { "_msToken": "VkZkd41NtVnJNWEZYVkVKUVVrZDBORlJXVWxKa01ERTJWbGhrVG1Gc2F6RlViWEJDVFRBNVJWZFVSbEpXVmtVeFZWaHdTazB3TVRaVmExcFBWa2Q0UkZSclVscE5WVFV6VUZRd1BRPT0=" }, "check_status": 1, "session": { }, "appid": 1, "__token": "d1bb83f794ebaa920694e15f353f023b", "_bid": "ffa_goods", "_lid": "788762117123" } 这段不确定的json 数据中,我还需要实现一个功能,spec_detail 下value 的数组,我需要根据 spec_values的 id 来删除如果 sku_detail.value 下的数组中,spec_detail_ids 中如果包含相同 的spec_values的 id,同时需要删除,还需要添加 修改 sku_detail.value 下 price 和 stock_info.stock_num 的修改。下面是我修改过的代码为: package service import ( "fmt" "regexp" "github.com/tidwall/gjson" "github.com/tidwall/sjson" ) // JSONProcessor 处理 JSON 数据的工具类 type JSONProcessor struct { jsonStr string } // NewJSONProcessor 创建新的 JSON 处理器 func NewJSONProcessor(jsonStr string) *JSONProcessor { return &JSONProcessor{jsonStr: jsonStr} } // ExtractAllPics 提取所有图片 URL(包括描述中的图片) func (jp *JSONProcessor) ExtractAllPics() []string { // 基础路径 basePath := "schema.model" // 存储所有图片的集合(使用 map 去重) uniquePics := make(map[string]bool) // 1. 处理指定字段的图片 fields := []string{"spec_detail", "white_background_pic", "main_image_three_to_four", "pic"} for _, field := range fields { path := fmt.Sprintf("%s.%s.value", basePath, field) result := gjson.Get(jp.jsonStr, path) if result.Exists() { result.ForEach(func(_, item gjson.Result) bool { // 处理 spec_detail 的特殊结构 if field == "spec_detail" { item.Get("spec_values").ForEach(func(_, spec gjson.Result) bool { if img := spec.Get("img_url"); img.Exists() { uniquePics[img.String()] = true } return true }) } else if url := item.Get("url"); url.Exists() { // 处理其他标准字段 uniquePics[url.String()] = true } return true }) } } // 2. 处理 description 中的图片 descPath := fmt.Sprintf("%s.description.value", basePath) descResult := gjson.Get(jp.jsonStr, descPath) if descResult.Exists() { html := descResult.String() re := regexp.MustCompile(`<img[^>]+src="([^">]+)"`) matches := re.FindAllStringSubmatch(html, -1) for _, match := range matches { if len(match) > 1 && !uniquePics[match[1]] { uniquePics[match[1]] = true } } } // 转换为切片返回 allPics := make([]string, 0, len(uniquePics)) for pic := range uniquePics { allPics = append(allPics, pic) } return allPics } // GetField 获取指定字段的值 func (jp *JSONProcessor) GetField(fieldPath string) (gjson.Result, bool) { fullPath := fmt.Sprintf("schema.model.%s", fieldPath) result := gjson.Get(jp.jsonStr, fullPath) return result, result.Exists() } // UpdateField 更新指定字段的值 func (jp *JSONProcessor) UpdateField(fieldPath string, newValue interface{}) error { fullPath := fmt.Sprintf("schema.model.%s", fieldPath) newJSON, err := sjson.Set(jp.jsonStr, fullPath, newValue) if err != nil { return err } jp.jsonStr = newJSON return nil } // DeleteField 删除指定字段 func (jp *JSONProcessor) DeleteField(fieldPath string) error { fullPath := fmt.Sprintf("schema.model.%s", fieldPath) newJSON, err := sjson.Delete(jp.jsonStr, fullPath) if err != nil { return err } jp.jsonStr = newJSON return nil } // AddArrayItem 向数组字段添加新元素 func (jp *JSONProcessor) AddArrayItem(fieldPath string, newItem interface{}) error { fullPath := fmt.Sprintf("schema.model.%s.value.-1", fieldPath) newJSON, err := sjson.Set(jp.jsonStr, fullPath, newItem) if err != nil { return err } jp.jsonStr = newJSON return nil } // RemoveArrayItem 从数组中删除指定索引的元素 func (jp *JSONProcessor) RemoveArrayItem(fieldPath string, index int) error { fullPath := fmt.Sprintf("schema.model.%s.value.%d", fieldPath, index) newJSON, err := sjson.Delete(jp.jsonStr, fullPath) if err != nil { return err } jp.jsonStr = newJSON return nil } // GetJSON 获取当前处理后的 JSON func (jp *JSONProcessor) GetJSON() string { return jp.jsonStr } func testFunc(jsonStr string) { // 示例用法(替换为你的实际JSON字符串) processor := NewJSONProcessor(jsonStr) // 1. 提取所有图片 allPics := processor.ExtractAllPics() fmt.Println("提取到的所有图片URL:") for i, pic := range allPics { fmt.Printf("%d: %s\n", i+1, pic) } // 2. 字段操作示例 // 获取spec_detail字段 if specDetail, exists := processor.GetField("spec_detail"); exists { fmt.Println("\nSpec Detail 存在:", specDetail.Type) } // 更新description字段 newDesc := "<p>新的描述内容</p>" if err := processor.UpdateField("description.value", newDesc); err == nil { fmt.Println("\nDescription 更新成功") } // 添加新的图片到pic字段 newPic := map[string]interface{}{"url": "https://example.com/new_image.jpg"} if err := processor.AddArrayItem("pic", newPic); err == nil { fmt.Println("Pic 字段添加新图片成功") } // 删除第一个spec_detail项 if err := processor.RemoveArrayItem("spec_detail", 0); err == nil { fmt.Println("删除第一个 spec_detail 项成功") } // 获取最终JSON // finalJSON := processor.GetJSON() // fmt.Println(finalJSON) } 请帮我完善和修改上述代码,并返回给我完整的代码。
最新发布
08-06
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值